Skip to content
This repository has been archived by the owner on Sep 26, 2019. It is now read-only.

Commit

Permalink
testSortMetadataNeighbours
Browse files Browse the repository at this point in the history
  • Loading branch information
smatthewenglish committed Jan 14, 2019
1 parent 73f4442 commit 30652b4
Showing 1 changed file with 66 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -404,53 +404,29 @@ public Integer getDistance() {
return distance;
}

void setBondQueried() {
this.bondQueried = true;
}
void setBondQueried() {this.bondQueried = true;}

void setBondResponded() {
this.bondResponded = true;
}
boolean getBondQueried() {return bondQueried;}

void setBondEvaluation() {
this.bondEvaluated = true;
}
void setBondResponded() {this.bondResponded = true;}

boolean getBondQueried() {
return bondQueried;
}
boolean getBondResponded() {return bondResponded;}

boolean getBondResponded() {
return bondResponded;
}
void setBondEvaluation() {this.bondEvaluated = true;}

boolean getBondEvaluation() {
return bondEvaluated;
}
boolean getBondEvaluation() {return bondEvaluated;}

void setNeighbourQueried() {
this.neighbourQueried = true;
}
void setNeighbourQueried() {this.neighbourQueried = true;}

boolean getNeighbourQueried() {
return neighbourQueried;
}
boolean getNeighbourQueried() {return neighbourQueried;}

void setNeighbourResponded() {
this.neighbourResponded = true;
}
void setNeighbourResponded() {this.neighbourResponded = true;}

boolean getNeighbourResponded() {
return neighbourResponded;
}
boolean getNeighbourResponded() {return neighbourResponded;}

void setNeighbourEvaluation() {
this.neighbourEvaluated = true;
}
void setNeighbourEvaluation() {this.neighbourEvaluated = true;}

boolean getNeighbourEvaluation() {
return neighbourEvaluated;
}
boolean getNeighbourEvaluation() {return neighbourEvaluated;}

@Override
public boolean equals(final Object o) {
Expand All @@ -472,49 +448,7 @@ public String toString() {
}

@Test
public void testSort() {

MetadataPeer peerA = new MetadataPeer(peer_000, distance(target, peer_000.getId()));
MetadataPeer peerB = new MetadataPeer(peer_010, distance(target, peer_010.getId()));
MetadataPeer peerC = new MetadataPeer(peer_011, distance(target, peer_011.getId()));
MetadataPeer peerD = new MetadataPeer(peer_012, distance(target, peer_012.getId()));
MetadataPeer peerE = new MetadataPeer(peer_013, distance(target, peer_013.getId()));

SortedMap<BytesValue, MetadataPeer> iterationParticipantMap0 = new TreeMap<>();

iterationParticipantMap0.put(peer_000.getId(), peerA);
iterationParticipantMap0.put(peer_011.getId(), peerC);
iterationParticipantMap0.put(peer_013.getId(), peerE);
iterationParticipantMap0.put(peer_010.getId(), peerB);
iterationParticipantMap0.put(peer_012.getId(), peerD);

for (Object obj : iterationParticipantMap0.entrySet()) {
Map.Entry<BytesValue, MetadataPeer> entry = (Map.Entry) obj;
System.out.print("Key: " + entry.getKey());
System.out.println(", Value: " + entry.getValue());
}
System.out.println("-------");

SortedMap<BytesValue, MetadataPeer> iterationParticipantMap1 = putFirstEntries(3, iterationParticipantMap0);

for (Object obj : iterationParticipantMap1.entrySet()) {
Map.Entry<BytesValue, MetadataPeer> entry = (Map.Entry) obj;
System.out.print("Key: " + entry.getKey());
System.out.println(", Value: " + entry.getValue());
}
System.out.println("-------");

List<DiscoveryPeer> iterationParticipantList = alpha(3, iterationParticipantMap0);

for (DiscoveryPeer discoveryPeer : iterationParticipantList) {
System.out.println(discoveryPeer);
}

}


@Test
public void testSortMetadata() { //assertThat(method.getName()).isEqualTo("debug_metrics");
public void testSortMetadataBonding() {

final MetadataPeer peerA = new MetadataPeer(peer_020, distance(target, peer_020.getId()));

Expand Down Expand Up @@ -574,27 +508,64 @@ private List<DiscoveryPeer> bondingRoundCandidates(final int max, final SortedMa
return candidatesList;
}

private List<DiscoveryPeer> neighboursRoundCandidates(final int max, final SortedMap<BytesValue, MetadataPeer> source) {
final List<DiscoveryPeer> candidatesList = new ArrayList<>();

private List<DiscoveryPeer> alpha(int max, SortedMap<BytesValue, MetadataPeer> source) {
int count = 0;
List<DiscoveryPeer> target = new ArrayList<>();
for (Map.Entry<BytesValue, MetadataPeer> entry : source.entrySet()) {
if (count >= max) break;
target.add(entry.getValue().getPeer());
count++;
for (Map.Entry<BytesValue, MetadataPeer> candidateEntry : source.entrySet()) {
if (count >= max) {
break;
}
final MetadataPeer candidate = candidateEntry.getValue();

if(candidate.getBondQueried() && candidate.getBondResponded()) {
candidatesList.add(candidate.getPeer());
count++;
}
}
return target;
return candidatesList;
}

private SortedMap<BytesValue, MetadataPeer> putFirstEntries(int max, SortedMap<BytesValue, MetadataPeer> source) {
int count = 0;
TreeMap<BytesValue, MetadataPeer> target = new TreeMap<>();
for (Map.Entry<BytesValue, MetadataPeer> entry : source.entrySet()) {
if (count >= max) break;
target.put(entry.getKey(), entry.getValue());
count++;
@Test
public void testSortMetadataNeighbours() {

final MetadataPeer peerA = new MetadataPeer(peer_020, distance(target, peer_020.getId()));
peerA.setBondQueried();
peerA.setBondEvaluation(); //!!!

final MetadataPeer peerB = new MetadataPeer(peer_021, distance(target, peer_021.getId()));
peerB.setBondQueried();
peerB.setBondResponded();

final MetadataPeer peerC = new MetadataPeer(peer_022, distance(target, peer_022.getId()));
peerC.setBondQueried();
peerC.setBondResponded();

final MetadataPeer peerD = new MetadataPeer(peer_023, distance(target, peer_023.getId())); // Not returned on threshold 3
peerD.setBondQueried();
peerD.setBondResponded();

final SortedMap<BytesValue, MetadataPeer> oneTrueMap = new TreeMap<>();

oneTrueMap.put(peer_023.getId(), peerD);
oneTrueMap.put(peer_022.getId(), peerC);
oneTrueMap.put(peer_021.getId(), peerB);
oneTrueMap.put(peer_020.getId(), peerA);

try {
assertThat(oneTrueMap).containsExactly(
entry(peer_020.getId(), peerA),
entry(peer_021.getId(), peerB),
entry(peer_022.getId(), peerC),
entry(peer_023.getId(), peerD));
} catch (Exception e) {
System.err.println("Contains disorder.");
}
return target;
}

final List<DiscoveryPeer> bondingRoundCandidatesList = neighboursRoundCandidates(3, oneTrueMap);

assertThat(bondingRoundCandidatesList).contains(peerB.getPeer(), atIndex(0));
assertThat(bondingRoundCandidatesList).contains(peerC.getPeer(), atIndex(1));
assertThat(bondingRoundCandidatesList).contains(peerD.getPeer(), atIndex(2));
}
}

0 comments on commit 30652b4

Please sign in to comment.