| | 890 | |
| | 891 | # another check (case caught in ticket #905) for layouts like {0:A,1:A,2:B,3:B,4:B} |
| | 892 | if len(node_to_ranks.keys()) > 1: |
| | 893 | first_size = len(node_to_ranks[0]) |
| | 894 | last_size = len(node_to_ranks[len(node_to_ranks.keys())-1]) |
| | 895 | if (last_size > first_size): |
| | 896 | mpd_print(1, "irregular case C1 detected") |
| | 897 | return '' |
| | 898 | in_remainder = False |
| | 899 | node_ids = node_to_ranks.keys() |
| | 900 | node_ids.sort() |
| | 901 | for node_id in node_ids: |
| | 902 | node_size = len(node_to_ranks[node_id]) |
| | 903 | if not in_remainder: |
| | 904 | if node_size == first_size: |
| | 905 | pass # OK |
| | 906 | elif node_size == last_size: |
| | 907 | in_remainder = True |
| | 908 | else: |
| | 909 | mpd_print(1, "irregular case C2 detected") |
| | 910 | return '' |
| | 911 | else: # in_remainder |
| | 912 | if node_size != last_size: |
| | 913 | mpd_print(1, "irregular case C3 detected") |
| | 914 | return '' |