In [32]:
%run imports.py

In [33]:
x = Bidirectional_Ring(10)

In [34]:
x.draw()



In [35]:
x.state()


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

In [36]:
SynchTimeSlice(x)


--------------
Running LCR on
[P9 -> {P1, P2}, P1 -> {P3, P9}, P3 -> {P0, P1}, P0 -> {P5, P3}, P5 -> {P8, P0}, P8 -> {P6, P5}, P6 -> {P7, P8}, P7 -> {P4, P6}, P4 -> {P2, P7}, P2 -> {P9, P4}]
Round 1
P1.status is non-leader
P0.status is non-leader
P5.status is non-leader
P6.status is non-leader
P2.status is non-leader
Round 2
P3.status is non-leader
P4.status is non-leader
Round 3
P7.status is non-leader
Round 4
Round 5
P8.status is non-leader
Round 6
Round 7
Round 8
Round 9
Round 10
P9.status is leader
LCR Terminated
Message Complexity: 28
Time Complexity: 10
-------------------
Out[36]:
<datk.core.algs.LCR instance at 0x10d85ca28>

In [37]:
x.draw()



In [38]:
x.state()


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

In [39]:
assertLeaderElection(x)

In [ ]:


In [ ]: