In [48]:
%run imports.py

In [49]:
x = Bidirectional_Ring(10)

In [50]:
x.draw()



In [51]:
x.state()


Out[51]:
[('P2', {'n': 10}),
 ('P6', {'n': 10}),
 ('P4', {'n': 10}),
 ('P5', {'n': 10}),
 ('P9', {'n': 10}),
 ('P3', {'n': 10}),
 ('P7', {'n': 10}),
 ('P0', {'n': 10}),
 ('P1', {'n': 10}),
 ('P8', {'n': 10})]

In [52]:
SynchHirs(x)


------------------------------
Running SynchVariableSpeeds on
[P2 -> {P6, P8}, P6 -> {P4, P2}, P4 -> {P5, P6}, P5 -> {P9, P4}, P9 -> {P3, P5}, P3 -> {P7, P9}, P7 -> {P0, P3}, P0 -> {P1, P7}, P1 -> {P8, P0}, P8 -> {P2, P1}]
Round 1
Round 2
Round 3
Round 4
Round 5
Round 6
Round 7
Round 8
Round 9
Round 10
P0.status is leader
Round 11
P7.status is non-leader
Round 12
P3.status is non-leader
Round 13
P9.status is non-leader
Round 14
P5.status is non-leader
Round 15
P4.status is non-leader
Round 16
P6.status is non-leader
Round 17
P2.status is non-leader
Round 18
P8.status is non-leader
Round 19
P1.status is non-leader
Round 20
SynchVariableSpeeds Terminated
Message Complexity: 23
Time Complexity: 20
-------------------
Out[52]:
<datk.core.algs.SynchVariableSpeeds instance at 0x10a2606c8>

In [53]:
x.draw()



In [54]:
x.state()


Out[54]:
[('P2', {'n': 10, 'status': 'non-leader'}),
 ('P6', {'n': 10, 'status': 'non-leader'}),
 ('P4', {'n': 10, 'status': 'non-leader'}),
 ('P5', {'n': 10, 'status': 'non-leader'}),
 ('P9', {'n': 10, 'status': 'non-leader'}),
 ('P3', {'n': 10, 'status': 'non-leader'}),
 ('P7', {'n': 10, 'status': 'non-leader'}),
 ('P0', {'n': 10, 'status': 'leader'}),
 ('P1', {'n': 10, 'status': 'non-leader'}),
 ('P8', {'n': 10, 'status': 'non-leader'})]

In [55]:
assertLeaderElection(x)

In [ ]:


In [ ]: