diff --git a/tests/test_flatland_envs_sparse_rail_generator.py b/tests/test_flatland_envs_sparse_rail_generator.py index 8a622e2a1265df34fc1adb84547272125d54f171..16dc8641eb9a4c42a92eece803c02b19c9d27545 100644 --- a/tests/test_flatland_envs_sparse_rail_generator.py +++ b/tests/test_flatland_envs_sparse_rail_generator.py @@ -601,762 +601,760 @@ def test_sparse_rail_generator_deterministic(): number_of_agents=1, stochastic_data=stochastic_data, # Malfunction data generator ) - # for r in range(env.height): - # for c in range(env.width): - # print("assert env.rail.get_full_transitions({}, {}) == {}, \"[{}][{}]\"".format(r,c,env.rail.get_full_transitions(r,c),r,c)) - generator_is_stable = False - if generator_is_stable: - assert env.rail.get_full_transitions(0, 0) == 0, "[0][0]" - assert env.rail.get_full_transitions(0, 1) == 0, "[0][1]" - assert env.rail.get_full_transitions(0, 2) == 0, "[0][2]" - assert env.rail.get_full_transitions(0, 3) == 0, "[0][3]" - assert env.rail.get_full_transitions(0, 4) == 0, "[0][4]" - assert env.rail.get_full_transitions(0, 5) == 0, "[0][5]" - assert env.rail.get_full_transitions(0, 6) == 0, "[0][6]" - assert env.rail.get_full_transitions(0, 7) == 0, "[0][7]" - assert env.rail.get_full_transitions(0, 8) == 0, "[0][8]" - assert env.rail.get_full_transitions(0, 9) == 0, "[0][9]" - assert env.rail.get_full_transitions(0, 10) == 16386, "[0][10]" - assert env.rail.get_full_transitions(0, 11) == 1025, "[0][11]" - assert env.rail.get_full_transitions(0, 12) == 1025, "[0][12]" - assert env.rail.get_full_transitions(0, 13) == 1025, "[0][13]" - assert env.rail.get_full_transitions(0, 14) == 17411, "[0][14]" - assert env.rail.get_full_transitions(0, 15) == 1025, "[0][15]" - assert env.rail.get_full_transitions(0, 16) == 1025, "[0][16]" - assert env.rail.get_full_transitions(0, 17) == 1025, "[0][17]" - assert env.rail.get_full_transitions(0, 18) == 5633, "[0][18]" - assert env.rail.get_full_transitions(0, 19) == 4608, "[0][19]" - assert env.rail.get_full_transitions(0, 20) == 0, "[0][20]" - assert env.rail.get_full_transitions(0, 21) == 0, "[0][21]" - assert env.rail.get_full_transitions(0, 22) == 0, "[0][22]" - assert env.rail.get_full_transitions(0, 23) == 0, "[0][23]" - assert env.rail.get_full_transitions(0, 24) == 0, "[0][24]" - assert env.rail.get_full_transitions(1, 0) == 0, "[1][0]" - assert env.rail.get_full_transitions(1, 1) == 0, "[1][1]" - assert env.rail.get_full_transitions(1, 2) == 0, "[1][2]" - assert env.rail.get_full_transitions(1, 3) == 0, "[1][3]" - assert env.rail.get_full_transitions(1, 4) == 0, "[1][4]" - assert env.rail.get_full_transitions(1, 5) == 0, "[1][5]" - assert env.rail.get_full_transitions(1, 6) == 0, "[1][6]" - assert env.rail.get_full_transitions(1, 7) == 0, "[1][7]" - assert env.rail.get_full_transitions(1, 8) == 0, "[1][8]" - assert env.rail.get_full_transitions(1, 9) == 0, "[1][9]" - assert env.rail.get_full_transitions(1, 10) == 32800, "[1][10]" - assert env.rail.get_full_transitions(1, 11) == 0, "[1][11]" - assert env.rail.get_full_transitions(1, 12) == 0, "[1][12]" - assert env.rail.get_full_transitions(1, 13) == 0, "[1][13]" - assert env.rail.get_full_transitions(1, 14) == 32800, "[1][14]" - assert env.rail.get_full_transitions(1, 15) == 0, "[1][15]" - assert env.rail.get_full_transitions(1, 16) == 0, "[1][16]" - assert env.rail.get_full_transitions(1, 17) == 16386, "[1][17]" - assert env.rail.get_full_transitions(1, 18) == 38505, "[1][18]" - assert env.rail.get_full_transitions(1, 19) == 52275, "[1][19]" - assert env.rail.get_full_transitions(1, 20) == 4608, "[1][20]" - assert env.rail.get_full_transitions(1, 21) == 0, "[1][21]" - assert env.rail.get_full_transitions(1, 22) == 0, "[1][22]" - assert env.rail.get_full_transitions(1, 23) == 0, "[1][23]" - assert env.rail.get_full_transitions(1, 24) == 0, "[1][24]" - assert env.rail.get_full_transitions(2, 0) == 0, "[2][0]" - assert env.rail.get_full_transitions(2, 1) == 0, "[2][1]" - assert env.rail.get_full_transitions(2, 2) == 0, "[2][2]" - assert env.rail.get_full_transitions(2, 3) == 0, "[2][3]" - assert env.rail.get_full_transitions(2, 4) == 0, "[2][4]" - assert env.rail.get_full_transitions(2, 5) == 0, "[2][5]" - assert env.rail.get_full_transitions(2, 6) == 0, "[2][6]" - assert env.rail.get_full_transitions(2, 7) == 0, "[2][7]" - assert env.rail.get_full_transitions(2, 8) == 0, "[2][8]" - assert env.rail.get_full_transitions(2, 9) == 0, "[2][9]" - assert env.rail.get_full_transitions(2, 10) == 32800, "[2][10]" - assert env.rail.get_full_transitions(2, 11) == 0, "[2][11]" - assert env.rail.get_full_transitions(2, 12) == 0, "[2][12]" - assert env.rail.get_full_transitions(2, 13) == 0, "[2][13]" - assert env.rail.get_full_transitions(2, 14) == 32800, "[2][14]" - assert env.rail.get_full_transitions(2, 15) == 0, "[2][15]" - assert env.rail.get_full_transitions(2, 16) == 0, "[2][16]" - assert env.rail.get_full_transitions(2, 17) == 32800, "[2][17]" - assert env.rail.get_full_transitions(2, 18) == 32800, "[2][18]" - assert env.rail.get_full_transitions(2, 19) == 32800, "[2][19]" - assert env.rail.get_full_transitions(2, 20) == 32800, "[2][20]" - assert env.rail.get_full_transitions(2, 21) == 0, "[2][21]" - assert env.rail.get_full_transitions(2, 22) == 0, "[2][22]" - assert env.rail.get_full_transitions(2, 23) == 0, "[2][23]" - assert env.rail.get_full_transitions(2, 24) == 0, "[2][24]" - assert env.rail.get_full_transitions(3, 0) == 0, "[3][0]" - assert env.rail.get_full_transitions(3, 1) == 0, "[3][1]" - assert env.rail.get_full_transitions(3, 2) == 0, "[3][2]" - assert env.rail.get_full_transitions(3, 3) == 0, "[3][3]" - assert env.rail.get_full_transitions(3, 4) == 0, "[3][4]" - assert env.rail.get_full_transitions(3, 5) == 0, "[3][5]" - assert env.rail.get_full_transitions(3, 6) == 0, "[3][6]" - assert env.rail.get_full_transitions(3, 7) == 0, "[3][7]" - assert env.rail.get_full_transitions(3, 8) == 0, "[3][8]" - assert env.rail.get_full_transitions(3, 9) == 0, "[3][9]" - assert env.rail.get_full_transitions(3, 10) == 32800, "[3][10]" - assert env.rail.get_full_transitions(3, 11) == 0, "[3][11]" - assert env.rail.get_full_transitions(3, 12) == 0, "[3][12]" - assert env.rail.get_full_transitions(3, 13) == 0, "[3][13]" - assert env.rail.get_full_transitions(3, 14) == 32800, "[3][14]" - assert env.rail.get_full_transitions(3, 15) == 0, "[3][15]" - assert env.rail.get_full_transitions(3, 16) == 0, "[3][16]" - assert env.rail.get_full_transitions(3, 17) == 32800, "[3][17]" - assert env.rail.get_full_transitions(3, 18) == 32800, "[3][18]" - assert env.rail.get_full_transitions(3, 19) == 32800, "[3][19]" - assert env.rail.get_full_transitions(3, 20) == 32800, "[3][20]" - assert env.rail.get_full_transitions(3, 21) == 0, "[3][21]" - assert env.rail.get_full_transitions(3, 22) == 0, "[3][22]" - assert env.rail.get_full_transitions(3, 23) == 0, "[3][23]" - assert env.rail.get_full_transitions(3, 24) == 0, "[3][24]" - assert env.rail.get_full_transitions(4, 0) == 0, "[4][0]" - assert env.rail.get_full_transitions(4, 1) == 16386, "[4][1]" - assert env.rail.get_full_transitions(4, 2) == 1025, "[4][2]" - assert env.rail.get_full_transitions(4, 3) == 1025, "[4][3]" - assert env.rail.get_full_transitions(4, 4) == 1025, "[4][4]" - assert env.rail.get_full_transitions(4, 5) == 1025, "[4][5]" - assert env.rail.get_full_transitions(4, 6) == 1025, "[4][6]" - assert env.rail.get_full_transitions(4, 7) == 1025, "[4][7]" - assert env.rail.get_full_transitions(4, 8) == 1025, "[4][8]" - assert env.rail.get_full_transitions(4, 9) == 4608, "[4][9]" - assert env.rail.get_full_transitions(4, 10) == 32800, "[4][10]" - assert env.rail.get_full_transitions(4, 11) == 0, "[4][11]" - assert env.rail.get_full_transitions(4, 12) == 0, "[4][12]" - assert env.rail.get_full_transitions(4, 13) == 0, "[4][13]" - assert env.rail.get_full_transitions(4, 14) == 32800, "[4][14]" - assert env.rail.get_full_transitions(4, 15) == 0, "[4][15]" - assert env.rail.get_full_transitions(4, 16) == 0, "[4][16]" - assert env.rail.get_full_transitions(4, 17) == 32800, "[4][17]" - assert env.rail.get_full_transitions(4, 18) == 32800, "[4][18]" - assert env.rail.get_full_transitions(4, 19) == 32800, "[4][19]" - assert env.rail.get_full_transitions(4, 20) == 32800, "[4][20]" - assert env.rail.get_full_transitions(4, 21) == 0, "[4][21]" - assert env.rail.get_full_transitions(4, 22) == 0, "[4][22]" - assert env.rail.get_full_transitions(4, 23) == 0, "[4][23]" - assert env.rail.get_full_transitions(4, 24) == 0, "[4][24]" - assert env.rail.get_full_transitions(5, 0) == 16386, "[5][0]" - assert env.rail.get_full_transitions(5, 1) == 52275, "[5][1]" - assert env.rail.get_full_transitions(5, 2) == 1025, "[5][2]" - assert env.rail.get_full_transitions(5, 3) == 1025, "[5][3]" - assert env.rail.get_full_transitions(5, 4) == 1025, "[5][4]" - assert env.rail.get_full_transitions(5, 5) == 1025, "[5][5]" - assert env.rail.get_full_transitions(5, 6) == 1025, "[5][6]" - assert env.rail.get_full_transitions(5, 7) == 1025, "[5][7]" - assert env.rail.get_full_transitions(5, 8) == 1025, "[5][8]" - assert env.rail.get_full_transitions(5, 9) == 52275, "[5][9]" - assert env.rail.get_full_transitions(5, 10) == 3089, "[5][10]" - assert env.rail.get_full_transitions(5, 11) == 1025, "[5][11]" - assert env.rail.get_full_transitions(5, 12) == 1025, "[5][12]" - assert env.rail.get_full_transitions(5, 13) == 1025, "[5][13]" - assert env.rail.get_full_transitions(5, 14) == 2064, "[5][14]" - assert env.rail.get_full_transitions(5, 15) == 0, "[5][15]" - assert env.rail.get_full_transitions(5, 16) == 0, "[5][16]" - assert env.rail.get_full_transitions(5, 17) == 32800, "[5][17]" - assert env.rail.get_full_transitions(5, 18) == 32800, "[5][18]" - assert env.rail.get_full_transitions(5, 19) == 32800, "[5][19]" - assert env.rail.get_full_transitions(5, 20) == 32800, "[5][20]" - assert env.rail.get_full_transitions(5, 21) == 0, "[5][21]" - assert env.rail.get_full_transitions(5, 22) == 0, "[5][22]" - assert env.rail.get_full_transitions(5, 23) == 0, "[5][23]" - assert env.rail.get_full_transitions(5, 24) == 0, "[5][24]" - assert env.rail.get_full_transitions(6, 0) == 49186, "[6][0]" - assert env.rail.get_full_transitions(6, 1) == 3089, "[6][1]" - assert env.rail.get_full_transitions(6, 2) == 1025, "[6][2]" - assert env.rail.get_full_transitions(6, 3) == 1025, "[6][3]" - assert env.rail.get_full_transitions(6, 4) == 1025, "[6][4]" - assert env.rail.get_full_transitions(6, 5) == 1025, "[6][5]" - assert env.rail.get_full_transitions(6, 6) == 1025, "[6][6]" - assert env.rail.get_full_transitions(6, 7) == 1025, "[6][7]" - assert env.rail.get_full_transitions(6, 8) == 1025, "[6][8]" - assert env.rail.get_full_transitions(6, 9) == 2064, "[6][9]" - assert env.rail.get_full_transitions(6, 10) == 0, "[6][10]" - assert env.rail.get_full_transitions(6, 11) == 0, "[6][11]" - assert env.rail.get_full_transitions(6, 12) == 0, "[6][12]" - assert env.rail.get_full_transitions(6, 13) == 0, "[6][13]" - assert env.rail.get_full_transitions(6, 14) == 0, "[6][14]" - assert env.rail.get_full_transitions(6, 15) == 0, "[6][15]" - assert env.rail.get_full_transitions(6, 16) == 0, "[6][16]" - assert env.rail.get_full_transitions(6, 17) == 32800, "[6][17]" - assert env.rail.get_full_transitions(6, 18) == 32800, "[6][18]" - assert env.rail.get_full_transitions(6, 19) == 32800, "[6][19]" - assert env.rail.get_full_transitions(6, 20) == 32800, "[6][20]" - assert env.rail.get_full_transitions(6, 21) == 0, "[6][21]" - assert env.rail.get_full_transitions(6, 22) == 0, "[6][22]" - assert env.rail.get_full_transitions(6, 23) == 0, "[6][23]" - assert env.rail.get_full_transitions(6, 24) == 0, "[6][24]" - assert env.rail.get_full_transitions(7, 0) == 32800, "[7][0]" - assert env.rail.get_full_transitions(7, 1) == 0, "[7][1]" - assert env.rail.get_full_transitions(7, 2) == 0, "[7][2]" - assert env.rail.get_full_transitions(7, 3) == 0, "[7][3]" - assert env.rail.get_full_transitions(7, 4) == 0, "[7][4]" - assert env.rail.get_full_transitions(7, 5) == 0, "[7][5]" - assert env.rail.get_full_transitions(7, 6) == 0, "[7][6]" - assert env.rail.get_full_transitions(7, 7) == 0, "[7][7]" - assert env.rail.get_full_transitions(7, 8) == 0, "[7][8]" - assert env.rail.get_full_transitions(7, 9) == 0, "[7][9]" - assert env.rail.get_full_transitions(7, 10) == 0, "[7][10]" - assert env.rail.get_full_transitions(7, 11) == 0, "[7][11]" - assert env.rail.get_full_transitions(7, 12) == 0, "[7][12]" - assert env.rail.get_full_transitions(7, 13) == 0, "[7][13]" - assert env.rail.get_full_transitions(7, 14) == 0, "[7][14]" - assert env.rail.get_full_transitions(7, 15) == 0, "[7][15]" - assert env.rail.get_full_transitions(7, 16) == 0, "[7][16]" - assert env.rail.get_full_transitions(7, 17) == 32800, "[7][17]" - assert env.rail.get_full_transitions(7, 18) == 32800, "[7][18]" - assert env.rail.get_full_transitions(7, 19) == 32800, "[7][19]" - assert env.rail.get_full_transitions(7, 20) == 32800, "[7][20]" - assert env.rail.get_full_transitions(7, 21) == 0, "[7][21]" - assert env.rail.get_full_transitions(7, 22) == 0, "[7][22]" - assert env.rail.get_full_transitions(7, 23) == 0, "[7][23]" - assert env.rail.get_full_transitions(7, 24) == 0, "[7][24]" - assert env.rail.get_full_transitions(8, 0) == 32800, "[8][0]" - assert env.rail.get_full_transitions(8, 1) == 0, "[8][1]" - assert env.rail.get_full_transitions(8, 2) == 0, "[8][2]" - assert env.rail.get_full_transitions(8, 3) == 0, "[8][3]" - assert env.rail.get_full_transitions(8, 4) == 0, "[8][4]" - assert env.rail.get_full_transitions(8, 5) == 0, "[8][5]" - assert env.rail.get_full_transitions(8, 6) == 0, "[8][6]" - assert env.rail.get_full_transitions(8, 7) == 0, "[8][7]" - assert env.rail.get_full_transitions(8, 8) == 0, "[8][8]" - assert env.rail.get_full_transitions(8, 9) == 0, "[8][9]" - assert env.rail.get_full_transitions(8, 10) == 0, "[8][10]" - assert env.rail.get_full_transitions(8, 11) == 0, "[8][11]" - assert env.rail.get_full_transitions(8, 12) == 0, "[8][12]" - assert env.rail.get_full_transitions(8, 13) == 0, "[8][13]" - assert env.rail.get_full_transitions(8, 14) == 0, "[8][14]" - assert env.rail.get_full_transitions(8, 15) == 0, "[8][15]" - assert env.rail.get_full_transitions(8, 16) == 0, "[8][16]" - assert env.rail.get_full_transitions(8, 17) == 32800, "[8][17]" - assert env.rail.get_full_transitions(8, 18) == 32800, "[8][18]" - assert env.rail.get_full_transitions(8, 19) == 32800, "[8][19]" - assert env.rail.get_full_transitions(8, 20) == 32800, "[8][20]" - assert env.rail.get_full_transitions(8, 21) == 0, "[8][21]" - assert env.rail.get_full_transitions(8, 22) == 0, "[8][22]" - assert env.rail.get_full_transitions(8, 23) == 0, "[8][23]" - assert env.rail.get_full_transitions(8, 24) == 0, "[8][24]" - assert env.rail.get_full_transitions(9, 0) == 32800, "[9][0]" - assert env.rail.get_full_transitions(9, 1) == 0, "[9][1]" - assert env.rail.get_full_transitions(9, 2) == 0, "[9][2]" - assert env.rail.get_full_transitions(9, 3) == 0, "[9][3]" - assert env.rail.get_full_transitions(9, 4) == 0, "[9][4]" - assert env.rail.get_full_transitions(9, 5) == 0, "[9][5]" - assert env.rail.get_full_transitions(9, 6) == 0, "[9][6]" - assert env.rail.get_full_transitions(9, 7) == 0, "[9][7]" - assert env.rail.get_full_transitions(9, 8) == 0, "[9][8]" - assert env.rail.get_full_transitions(9, 9) == 0, "[9][9]" - assert env.rail.get_full_transitions(9, 10) == 0, "[9][10]" - assert env.rail.get_full_transitions(9, 11) == 0, "[9][11]" - assert env.rail.get_full_transitions(9, 12) == 0, "[9][12]" - assert env.rail.get_full_transitions(9, 13) == 0, "[9][13]" - assert env.rail.get_full_transitions(9, 14) == 0, "[9][14]" - assert env.rail.get_full_transitions(9, 15) == 0, "[9][15]" - assert env.rail.get_full_transitions(9, 16) == 0, "[9][16]" - assert env.rail.get_full_transitions(9, 17) == 72, "[9][17]" - assert env.rail.get_full_transitions(9, 18) == 3089, "[9][18]" - assert env.rail.get_full_transitions(9, 19) == 1097, "[9][19]" - assert env.rail.get_full_transitions(9, 20) == 2064, "[9][20]" - assert env.rail.get_full_transitions(9, 21) == 0, "[9][21]" - assert env.rail.get_full_transitions(9, 22) == 0, "[9][22]" - assert env.rail.get_full_transitions(9, 23) == 0, "[9][23]" - assert env.rail.get_full_transitions(9, 24) == 0, "[9][24]" - assert env.rail.get_full_transitions(10, 0) == 32800, "[10][0]" - assert env.rail.get_full_transitions(10, 1) == 0, "[10][1]" - assert env.rail.get_full_transitions(10, 2) == 0, "[10][2]" - assert env.rail.get_full_transitions(10, 3) == 0, "[10][3]" - assert env.rail.get_full_transitions(10, 4) == 0, "[10][4]" - assert env.rail.get_full_transitions(10, 5) == 0, "[10][5]" - assert env.rail.get_full_transitions(10, 6) == 0, "[10][6]" - assert env.rail.get_full_transitions(10, 7) == 0, "[10][7]" - assert env.rail.get_full_transitions(10, 8) == 0, "[10][8]" - assert env.rail.get_full_transitions(10, 9) == 0, "[10][9]" - assert env.rail.get_full_transitions(10, 10) == 0, "[10][10]" - assert env.rail.get_full_transitions(10, 11) == 0, "[10][11]" - assert env.rail.get_full_transitions(10, 12) == 0, "[10][12]" - assert env.rail.get_full_transitions(10, 13) == 0, "[10][13]" - assert env.rail.get_full_transitions(10, 14) == 0, "[10][14]" - assert env.rail.get_full_transitions(10, 15) == 0, "[10][15]" - assert env.rail.get_full_transitions(10, 16) == 0, "[10][16]" - assert env.rail.get_full_transitions(10, 17) == 0, "[10][17]" - assert env.rail.get_full_transitions(10, 18) == 0, "[10][18]" - assert env.rail.get_full_transitions(10, 19) == 0, "[10][19]" - assert env.rail.get_full_transitions(10, 20) == 0, "[10][20]" - assert env.rail.get_full_transitions(10, 21) == 0, "[10][21]" - assert env.rail.get_full_transitions(10, 22) == 0, "[10][22]" - assert env.rail.get_full_transitions(10, 23) == 0, "[10][23]" - assert env.rail.get_full_transitions(10, 24) == 0, "[10][24]" - assert env.rail.get_full_transitions(11, 0) == 32800, "[11][0]" - assert env.rail.get_full_transitions(11, 1) == 0, "[11][1]" - assert env.rail.get_full_transitions(11, 2) == 0, "[11][2]" - assert env.rail.get_full_transitions(11, 3) == 0, "[11][3]" - assert env.rail.get_full_transitions(11, 4) == 0, "[11][4]" - assert env.rail.get_full_transitions(11, 5) == 0, "[11][5]" - assert env.rail.get_full_transitions(11, 6) == 0, "[11][6]" - assert env.rail.get_full_transitions(11, 7) == 0, "[11][7]" - assert env.rail.get_full_transitions(11, 8) == 0, "[11][8]" - assert env.rail.get_full_transitions(11, 9) == 0, "[11][9]" - assert env.rail.get_full_transitions(11, 10) == 0, "[11][10]" - assert env.rail.get_full_transitions(11, 11) == 0, "[11][11]" - assert env.rail.get_full_transitions(11, 12) == 0, "[11][12]" - assert env.rail.get_full_transitions(11, 13) == 0, "[11][13]" - assert env.rail.get_full_transitions(11, 14) == 0, "[11][14]" - assert env.rail.get_full_transitions(11, 15) == 0, "[11][15]" - assert env.rail.get_full_transitions(11, 16) == 0, "[11][16]" - assert env.rail.get_full_transitions(11, 17) == 0, "[11][17]" - assert env.rail.get_full_transitions(11, 18) == 0, "[11][18]" - assert env.rail.get_full_transitions(11, 19) == 0, "[11][19]" - assert env.rail.get_full_transitions(11, 20) == 0, "[11][20]" - assert env.rail.get_full_transitions(11, 21) == 0, "[11][21]" - assert env.rail.get_full_transitions(11, 22) == 0, "[11][22]" - assert env.rail.get_full_transitions(11, 23) == 0, "[11][23]" - assert env.rail.get_full_transitions(11, 24) == 0, "[11][24]" - assert env.rail.get_full_transitions(12, 0) == 32800, "[12][0]" - assert env.rail.get_full_transitions(12, 1) == 16386, "[12][1]" - assert env.rail.get_full_transitions(12, 2) == 1025, "[12][2]" - assert env.rail.get_full_transitions(12, 3) == 1025, "[12][3]" - assert env.rail.get_full_transitions(12, 4) == 1025, "[12][4]" - assert env.rail.get_full_transitions(12, 5) == 1025, "[12][5]" - assert env.rail.get_full_transitions(12, 6) == 1025, "[12][6]" - assert env.rail.get_full_transitions(12, 7) == 1025, "[12][7]" - assert env.rail.get_full_transitions(12, 8) == 1025, "[12][8]" - assert env.rail.get_full_transitions(12, 9) == 4608, "[12][9]" - assert env.rail.get_full_transitions(12, 10) == 16386, "[12][10]" - assert env.rail.get_full_transitions(12, 11) == 1025, "[12][11]" - assert env.rail.get_full_transitions(12, 12) == 1025, "[12][12]" - assert env.rail.get_full_transitions(12, 13) == 1025, "[12][13]" - assert env.rail.get_full_transitions(12, 14) == 1025, "[12][14]" - assert env.rail.get_full_transitions(12, 15) == 5633, "[12][15]" - assert env.rail.get_full_transitions(12, 16) == 1025, "[12][16]" - assert env.rail.get_full_transitions(12, 17) == 1025, "[12][17]" - assert env.rail.get_full_transitions(12, 18) == 1025, "[12][18]" - assert env.rail.get_full_transitions(12, 19) == 1025, "[12][19]" - assert env.rail.get_full_transitions(12, 20) == 1025, "[12][20]" - assert env.rail.get_full_transitions(12, 21) == 1025, "[12][21]" - assert env.rail.get_full_transitions(12, 22) == 1025, "[12][22]" - assert env.rail.get_full_transitions(12, 23) == 4608, "[12][23]" - assert env.rail.get_full_transitions(12, 24) == 0, "[12][24]" - assert env.rail.get_full_transitions(13, 0) == 16458, "[13][0]" - assert env.rail.get_full_transitions(13, 1) == 52275, "[13][1]" - assert env.rail.get_full_transitions(13, 2) == 1025, "[13][2]" - assert env.rail.get_full_transitions(13, 3) == 1025, "[13][3]" - assert env.rail.get_full_transitions(13, 4) == 1025, "[13][4]" - assert env.rail.get_full_transitions(13, 5) == 1025, "[13][5]" - assert env.rail.get_full_transitions(13, 6) == 1025, "[13][6]" - assert env.rail.get_full_transitions(13, 7) == 1025, "[13][7]" - assert env.rail.get_full_transitions(13, 8) == 1025, "[13][8]" - assert env.rail.get_full_transitions(13, 9) == 52275, "[13][9]" - assert env.rail.get_full_transitions(13, 10) == 3089, "[13][10]" - assert env.rail.get_full_transitions(13, 11) == 1025, "[13][11]" - assert env.rail.get_full_transitions(13, 12) == 1025, "[13][12]" - assert env.rail.get_full_transitions(13, 13) == 1025, "[13][13]" - assert env.rail.get_full_transitions(13, 14) == 1025, "[13][14]" - assert env.rail.get_full_transitions(13, 15) == 38505, "[13][15]" - assert env.rail.get_full_transitions(13, 16) == 1025, "[13][16]" - assert env.rail.get_full_transitions(13, 17) == 1025, "[13][17]" - assert env.rail.get_full_transitions(13, 18) == 1025, "[13][18]" - assert env.rail.get_full_transitions(13, 19) == 1025, "[13][19]" - assert env.rail.get_full_transitions(13, 20) == 1025, "[13][20]" - assert env.rail.get_full_transitions(13, 21) == 1025, "[13][21]" - assert env.rail.get_full_transitions(13, 22) == 1025, "[13][22]" - assert env.rail.get_full_transitions(13, 23) == 37408, "[13][23]" - assert env.rail.get_full_transitions(13, 24) == 0, "[13][24]" - assert env.rail.get_full_transitions(14, 0) == 49186, "[14][0]" - assert env.rail.get_full_transitions(14, 1) == 38505, "[14][1]" - assert env.rail.get_full_transitions(14, 2) == 1025, "[14][2]" - assert env.rail.get_full_transitions(14, 3) == 1025, "[14][3]" - assert env.rail.get_full_transitions(14, 4) == 1025, "[14][4]" - assert env.rail.get_full_transitions(14, 5) == 1025, "[14][5]" - assert env.rail.get_full_transitions(14, 6) == 1025, "[14][6]" - assert env.rail.get_full_transitions(14, 7) == 1025, "[14][7]" - assert env.rail.get_full_transitions(14, 8) == 1025, "[14][8]" - assert env.rail.get_full_transitions(14, 9) == 38505, "[14][9]" - assert env.rail.get_full_transitions(14, 10) == 5633, "[14][10]" - assert env.rail.get_full_transitions(14, 11) == 1025, "[14][11]" - assert env.rail.get_full_transitions(14, 12) == 1025, "[14][12]" - assert env.rail.get_full_transitions(14, 13) == 1025, "[14][13]" - assert env.rail.get_full_transitions(14, 14) == 1025, "[14][14]" - assert env.rail.get_full_transitions(14, 15) == 38505, "[14][15]" - assert env.rail.get_full_transitions(14, 16) == 1025, "[14][16]" - assert env.rail.get_full_transitions(14, 17) == 1025, "[14][17]" - assert env.rail.get_full_transitions(14, 18) == 1025, "[14][18]" - assert env.rail.get_full_transitions(14, 19) == 1025, "[14][19]" - assert env.rail.get_full_transitions(14, 20) == 1025, "[14][20]" - assert env.rail.get_full_transitions(14, 21) == 1025, "[14][21]" - assert env.rail.get_full_transitions(14, 22) == 1025, "[14][22]" - assert env.rail.get_full_transitions(14, 23) == 34864, "[14][23]" - assert env.rail.get_full_transitions(14, 24) == 0, "[14][24]" - assert env.rail.get_full_transitions(15, 0) == 32800, "[15][0]" - assert env.rail.get_full_transitions(15, 1) == 72, "[15][1]" - assert env.rail.get_full_transitions(15, 2) == 1025, "[15][2]" - assert env.rail.get_full_transitions(15, 3) == 1025, "[15][3]" - assert env.rail.get_full_transitions(15, 4) == 1025, "[15][4]" - assert env.rail.get_full_transitions(15, 5) == 1025, "[15][5]" - assert env.rail.get_full_transitions(15, 6) == 1025, "[15][6]" - assert env.rail.get_full_transitions(15, 7) == 1025, "[15][7]" - assert env.rail.get_full_transitions(15, 8) == 1025, "[15][8]" - assert env.rail.get_full_transitions(15, 9) == 2064, "[15][9]" - assert env.rail.get_full_transitions(15, 10) == 32872, "[15][10]" - assert env.rail.get_full_transitions(15, 11) == 1025, "[15][11]" - assert env.rail.get_full_transitions(15, 12) == 1025, "[15][12]" - assert env.rail.get_full_transitions(15, 13) == 1025, "[15][13]" - assert env.rail.get_full_transitions(15, 14) == 17411, "[15][14]" - assert env.rail.get_full_transitions(15, 15) == 1097, "[15][15]" - assert env.rail.get_full_transitions(15, 16) == 1025, "[15][16]" - assert env.rail.get_full_transitions(15, 17) == 1025, "[15][17]" - assert env.rail.get_full_transitions(15, 18) == 1025, "[15][18]" - assert env.rail.get_full_transitions(15, 19) == 1025, "[15][19]" - assert env.rail.get_full_transitions(15, 20) == 1025, "[15][20]" - assert env.rail.get_full_transitions(15, 21) == 1025, "[15][21]" - assert env.rail.get_full_transitions(15, 22) == 1025, "[15][22]" - assert env.rail.get_full_transitions(15, 23) == 2064, "[15][23]" - assert env.rail.get_full_transitions(15, 24) == 0, "[15][24]" - assert env.rail.get_full_transitions(16, 0) == 32800, "[16][0]" - assert env.rail.get_full_transitions(16, 1) == 0, "[16][1]" - assert env.rail.get_full_transitions(16, 2) == 0, "[16][2]" - assert env.rail.get_full_transitions(16, 3) == 0, "[16][3]" - assert env.rail.get_full_transitions(16, 4) == 0, "[16][4]" - assert env.rail.get_full_transitions(16, 5) == 0, "[16][5]" - assert env.rail.get_full_transitions(16, 6) == 0, "[16][6]" - assert env.rail.get_full_transitions(16, 7) == 0, "[16][7]" - assert env.rail.get_full_transitions(16, 8) == 0, "[16][8]" - assert env.rail.get_full_transitions(16, 9) == 0, "[16][9]" - assert env.rail.get_full_transitions(16, 10) == 32800, "[16][10]" - assert env.rail.get_full_transitions(16, 11) == 0, "[16][11]" - assert env.rail.get_full_transitions(16, 12) == 0, "[16][12]" - assert env.rail.get_full_transitions(16, 13) == 0, "[16][13]" - assert env.rail.get_full_transitions(16, 14) == 32800, "[16][14]" - assert env.rail.get_full_transitions(16, 15) == 0, "[16][15]" - assert env.rail.get_full_transitions(16, 16) == 0, "[16][16]" - assert env.rail.get_full_transitions(16, 17) == 0, "[16][17]" - assert env.rail.get_full_transitions(16, 18) == 0, "[16][18]" - assert env.rail.get_full_transitions(16, 19) == 0, "[16][19]" - assert env.rail.get_full_transitions(16, 20) == 0, "[16][20]" - assert env.rail.get_full_transitions(16, 21) == 0, "[16][21]" - assert env.rail.get_full_transitions(16, 22) == 0, "[16][22]" - assert env.rail.get_full_transitions(16, 23) == 0, "[16][23]" - assert env.rail.get_full_transitions(16, 24) == 0, "[16][24]" - assert env.rail.get_full_transitions(17, 0) == 32800, "[17][0]" - assert env.rail.get_full_transitions(17, 1) == 0, "[17][1]" - assert env.rail.get_full_transitions(17, 2) == 0, "[17][2]" - assert env.rail.get_full_transitions(17, 3) == 0, "[17][3]" - assert env.rail.get_full_transitions(17, 4) == 0, "[17][4]" - assert env.rail.get_full_transitions(17, 5) == 0, "[17][5]" - assert env.rail.get_full_transitions(17, 6) == 0, "[17][6]" - assert env.rail.get_full_transitions(17, 7) == 0, "[17][7]" - assert env.rail.get_full_transitions(17, 8) == 0, "[17][8]" - assert env.rail.get_full_transitions(17, 9) == 0, "[17][9]" - assert env.rail.get_full_transitions(17, 10) == 32800, "[17][10]" - assert env.rail.get_full_transitions(17, 11) == 0, "[17][11]" - assert env.rail.get_full_transitions(17, 12) == 0, "[17][12]" - assert env.rail.get_full_transitions(17, 13) == 0, "[17][13]" - assert env.rail.get_full_transitions(17, 14) == 32800, "[17][14]" - assert env.rail.get_full_transitions(17, 15) == 0, "[17][15]" - assert env.rail.get_full_transitions(17, 16) == 0, "[17][16]" - assert env.rail.get_full_transitions(17, 17) == 0, "[17][17]" - assert env.rail.get_full_transitions(17, 18) == 0, "[17][18]" - assert env.rail.get_full_transitions(17, 19) == 0, "[17][19]" - assert env.rail.get_full_transitions(17, 20) == 0, "[17][20]" - assert env.rail.get_full_transitions(17, 21) == 0, "[17][21]" - assert env.rail.get_full_transitions(17, 22) == 0, "[17][22]" - assert env.rail.get_full_transitions(17, 23) == 0, "[17][23]" - assert env.rail.get_full_transitions(17, 24) == 0, "[17][24]" - assert env.rail.get_full_transitions(18, 0) == 32800, "[18][0]" - assert env.rail.get_full_transitions(18, 1) == 0, "[18][1]" - assert env.rail.get_full_transitions(18, 2) == 0, "[18][2]" - assert env.rail.get_full_transitions(18, 3) == 0, "[18][3]" - assert env.rail.get_full_transitions(18, 4) == 0, "[18][4]" - assert env.rail.get_full_transitions(18, 5) == 0, "[18][5]" - assert env.rail.get_full_transitions(18, 6) == 0, "[18][6]" - assert env.rail.get_full_transitions(18, 7) == 0, "[18][7]" - assert env.rail.get_full_transitions(18, 8) == 0, "[18][8]" - assert env.rail.get_full_transitions(18, 9) == 0, "[18][9]" - assert env.rail.get_full_transitions(18, 10) == 32800, "[18][10]" - assert env.rail.get_full_transitions(18, 11) == 0, "[18][11]" - assert env.rail.get_full_transitions(18, 12) == 0, "[18][12]" - assert env.rail.get_full_transitions(18, 13) == 0, "[18][13]" - assert env.rail.get_full_transitions(18, 14) == 32800, "[18][14]" - assert env.rail.get_full_transitions(18, 15) == 0, "[18][15]" - assert env.rail.get_full_transitions(18, 16) == 0, "[18][16]" - assert env.rail.get_full_transitions(18, 17) == 0, "[18][17]" - assert env.rail.get_full_transitions(18, 18) == 0, "[18][18]" - assert env.rail.get_full_transitions(18, 19) == 0, "[18][19]" - assert env.rail.get_full_transitions(18, 20) == 0, "[18][20]" - assert env.rail.get_full_transitions(18, 21) == 0, "[18][21]" - assert env.rail.get_full_transitions(18, 22) == 0, "[18][22]" - assert env.rail.get_full_transitions(18, 23) == 0, "[18][23]" - assert env.rail.get_full_transitions(18, 24) == 0, "[18][24]" - assert env.rail.get_full_transitions(19, 0) == 72, "[19][0]" - assert env.rail.get_full_transitions(19, 1) == 1025, "[19][1]" - assert env.rail.get_full_transitions(19, 2) == 1025, "[19][2]" - assert env.rail.get_full_transitions(19, 3) == 5633, "[19][3]" - assert env.rail.get_full_transitions(19, 4) == 4608, "[19][4]" - assert env.rail.get_full_transitions(19, 5) == 16386, "[19][5]" - assert env.rail.get_full_transitions(19, 6) == 17411, "[19][6]" - assert env.rail.get_full_transitions(19, 7) == 1025, "[19][7]" - assert env.rail.get_full_transitions(19, 8) == 1025, "[19][8]" - assert env.rail.get_full_transitions(19, 9) == 1025, "[19][9]" - assert env.rail.get_full_transitions(19, 10) == 2064, "[19][10]" - assert env.rail.get_full_transitions(19, 11) == 0, "[19][11]" - assert env.rail.get_full_transitions(19, 12) == 0, "[19][12]" - assert env.rail.get_full_transitions(19, 13) == 0, "[19][13]" - assert env.rail.get_full_transitions(19, 14) == 32800, "[19][14]" - assert env.rail.get_full_transitions(19, 15) == 0, "[19][15]" - assert env.rail.get_full_transitions(19, 16) == 0, "[19][16]" - assert env.rail.get_full_transitions(19, 17) == 0, "[19][17]" - assert env.rail.get_full_transitions(19, 18) == 0, "[19][18]" - assert env.rail.get_full_transitions(19, 19) == 0, "[19][19]" - assert env.rail.get_full_transitions(19, 20) == 0, "[19][20]" - assert env.rail.get_full_transitions(19, 21) == 0, "[19][21]" - assert env.rail.get_full_transitions(19, 22) == 0, "[19][22]" - assert env.rail.get_full_transitions(19, 23) == 0, "[19][23]" - assert env.rail.get_full_transitions(19, 24) == 0, "[19][24]" - assert env.rail.get_full_transitions(20, 0) == 0, "[20][0]" - assert env.rail.get_full_transitions(20, 1) == 0, "[20][1]" - assert env.rail.get_full_transitions(20, 2) == 0, "[20][2]" - assert env.rail.get_full_transitions(20, 3) == 32872, "[20][3]" - assert env.rail.get_full_transitions(20, 4) == 52275, "[20][4]" - assert env.rail.get_full_transitions(20, 5) == 52275, "[20][5]" - assert env.rail.get_full_transitions(20, 6) == 37408, "[20][6]" - assert env.rail.get_full_transitions(20, 7) == 0, "[20][7]" - assert env.rail.get_full_transitions(20, 8) == 0, "[20][8]" - assert env.rail.get_full_transitions(20, 9) == 0, "[20][9]" - assert env.rail.get_full_transitions(20, 10) == 0, "[20][10]" - assert env.rail.get_full_transitions(20, 11) == 0, "[20][11]" - assert env.rail.get_full_transitions(20, 12) == 0, "[20][12]" - assert env.rail.get_full_transitions(20, 13) == 0, "[20][13]" - assert env.rail.get_full_transitions(20, 14) == 32800, "[20][14]" - assert env.rail.get_full_transitions(20, 15) == 0, "[20][15]" - assert env.rail.get_full_transitions(20, 16) == 0, "[20][16]" - assert env.rail.get_full_transitions(20, 17) == 0, "[20][17]" - assert env.rail.get_full_transitions(20, 18) == 0, "[20][18]" - assert env.rail.get_full_transitions(20, 19) == 0, "[20][19]" - assert env.rail.get_full_transitions(20, 20) == 0, "[20][20]" - assert env.rail.get_full_transitions(20, 21) == 0, "[20][21]" - assert env.rail.get_full_transitions(20, 22) == 0, "[20][22]" - assert env.rail.get_full_transitions(20, 23) == 0, "[20][23]" - assert env.rail.get_full_transitions(20, 24) == 0, "[20][24]" - assert env.rail.get_full_transitions(21, 0) == 0, "[21][0]" - assert env.rail.get_full_transitions(21, 1) == 0, "[21][1]" - assert env.rail.get_full_transitions(21, 2) == 0, "[21][2]" - assert env.rail.get_full_transitions(21, 3) == 32800, "[21][3]" - assert env.rail.get_full_transitions(21, 4) == 32800, "[21][4]" - assert env.rail.get_full_transitions(21, 5) == 32800, "[21][5]" - assert env.rail.get_full_transitions(21, 6) == 32800, "[21][6]" - assert env.rail.get_full_transitions(21, 7) == 0, "[21][7]" - assert env.rail.get_full_transitions(21, 8) == 0, "[21][8]" - assert env.rail.get_full_transitions(21, 9) == 0, "[21][9]" - assert env.rail.get_full_transitions(21, 10) == 0, "[21][10]" - assert env.rail.get_full_transitions(21, 11) == 0, "[21][11]" - assert env.rail.get_full_transitions(21, 12) == 0, "[21][12]" - assert env.rail.get_full_transitions(21, 13) == 0, "[21][13]" - assert env.rail.get_full_transitions(21, 14) == 32800, "[21][14]" - assert env.rail.get_full_transitions(21, 15) == 0, "[21][15]" - assert env.rail.get_full_transitions(21, 16) == 0, "[21][16]" - assert env.rail.get_full_transitions(21, 17) == 0, "[21][17]" - assert env.rail.get_full_transitions(21, 18) == 0, "[21][18]" - assert env.rail.get_full_transitions(21, 19) == 0, "[21][19]" - assert env.rail.get_full_transitions(21, 20) == 0, "[21][20]" - assert env.rail.get_full_transitions(21, 21) == 0, "[21][21]" - assert env.rail.get_full_transitions(21, 22) == 0, "[21][22]" - assert env.rail.get_full_transitions(21, 23) == 0, "[21][23]" - assert env.rail.get_full_transitions(21, 24) == 0, "[21][24]" - assert env.rail.get_full_transitions(22, 0) == 0, "[22][0]" - assert env.rail.get_full_transitions(22, 1) == 0, "[22][1]" - assert env.rail.get_full_transitions(22, 2) == 0, "[22][2]" - assert env.rail.get_full_transitions(22, 3) == 32800, "[22][3]" - assert env.rail.get_full_transitions(22, 4) == 32800, "[22][4]" - assert env.rail.get_full_transitions(22, 5) == 32800, "[22][5]" - assert env.rail.get_full_transitions(22, 6) == 32800, "[22][6]" - assert env.rail.get_full_transitions(22, 7) == 0, "[22][7]" - assert env.rail.get_full_transitions(22, 8) == 0, "[22][8]" - assert env.rail.get_full_transitions(22, 9) == 0, "[22][9]" - assert env.rail.get_full_transitions(22, 10) == 0, "[22][10]" - assert env.rail.get_full_transitions(22, 11) == 0, "[22][11]" - assert env.rail.get_full_transitions(22, 12) == 0, "[22][12]" - assert env.rail.get_full_transitions(22, 13) == 0, "[22][13]" - assert env.rail.get_full_transitions(22, 14) == 32800, "[22][14]" - assert env.rail.get_full_transitions(22, 15) == 0, "[22][15]" - assert env.rail.get_full_transitions(22, 16) == 0, "[22][16]" - assert env.rail.get_full_transitions(22, 17) == 0, "[22][17]" - assert env.rail.get_full_transitions(22, 18) == 0, "[22][18]" - assert env.rail.get_full_transitions(22, 19) == 0, "[22][19]" - assert env.rail.get_full_transitions(22, 20) == 0, "[22][20]" - assert env.rail.get_full_transitions(22, 21) == 0, "[22][21]" - assert env.rail.get_full_transitions(22, 22) == 0, "[22][22]" - assert env.rail.get_full_transitions(22, 23) == 0, "[22][23]" - assert env.rail.get_full_transitions(22, 24) == 0, "[22][24]" - assert env.rail.get_full_transitions(23, 0) == 0, "[23][0]" - assert env.rail.get_full_transitions(23, 1) == 0, "[23][1]" - assert env.rail.get_full_transitions(23, 2) == 0, "[23][2]" - assert env.rail.get_full_transitions(23, 3) == 32800, "[23][3]" - assert env.rail.get_full_transitions(23, 4) == 32800, "[23][4]" - assert env.rail.get_full_transitions(23, 5) == 32800, "[23][5]" - assert env.rail.get_full_transitions(23, 6) == 32800, "[23][6]" - assert env.rail.get_full_transitions(23, 7) == 0, "[23][7]" - assert env.rail.get_full_transitions(23, 8) == 0, "[23][8]" - assert env.rail.get_full_transitions(23, 9) == 0, "[23][9]" - assert env.rail.get_full_transitions(23, 10) == 0, "[23][10]" - assert env.rail.get_full_transitions(23, 11) == 0, "[23][11]" - assert env.rail.get_full_transitions(23, 12) == 0, "[23][12]" - assert env.rail.get_full_transitions(23, 13) == 0, "[23][13]" - assert env.rail.get_full_transitions(23, 14) == 32800, "[23][14]" - assert env.rail.get_full_transitions(23, 15) == 0, "[23][15]" - assert env.rail.get_full_transitions(23, 16) == 0, "[23][16]" - assert env.rail.get_full_transitions(23, 17) == 0, "[23][17]" - assert env.rail.get_full_transitions(23, 18) == 0, "[23][18]" - assert env.rail.get_full_transitions(23, 19) == 0, "[23][19]" - assert env.rail.get_full_transitions(23, 20) == 0, "[23][20]" - assert env.rail.get_full_transitions(23, 21) == 0, "[23][21]" - assert env.rail.get_full_transitions(23, 22) == 0, "[23][22]" - assert env.rail.get_full_transitions(23, 23) == 0, "[23][23]" - assert env.rail.get_full_transitions(23, 24) == 0, "[23][24]" - assert env.rail.get_full_transitions(24, 0) == 0, "[24][0]" - assert env.rail.get_full_transitions(24, 1) == 0, "[24][1]" - assert env.rail.get_full_transitions(24, 2) == 0, "[24][2]" - assert env.rail.get_full_transitions(24, 3) == 32800, "[24][3]" - assert env.rail.get_full_transitions(24, 4) == 32800, "[24][4]" - assert env.rail.get_full_transitions(24, 5) == 32800, "[24][5]" - assert env.rail.get_full_transitions(24, 6) == 32800, "[24][6]" - assert env.rail.get_full_transitions(24, 7) == 0, "[24][7]" - assert env.rail.get_full_transitions(24, 8) == 0, "[24][8]" - assert env.rail.get_full_transitions(24, 9) == 0, "[24][9]" - assert env.rail.get_full_transitions(24, 10) == 0, "[24][10]" - assert env.rail.get_full_transitions(24, 11) == 0, "[24][11]" - assert env.rail.get_full_transitions(24, 12) == 0, "[24][12]" - assert env.rail.get_full_transitions(24, 13) == 0, "[24][13]" - assert env.rail.get_full_transitions(24, 14) == 32800, "[24][14]" - assert env.rail.get_full_transitions(24, 15) == 0, "[24][15]" - assert env.rail.get_full_transitions(24, 16) == 0, "[24][16]" - assert env.rail.get_full_transitions(24, 17) == 0, "[24][17]" - assert env.rail.get_full_transitions(24, 18) == 0, "[24][18]" - assert env.rail.get_full_transitions(24, 19) == 0, "[24][19]" - assert env.rail.get_full_transitions(24, 20) == 0, "[24][20]" - assert env.rail.get_full_transitions(24, 21) == 0, "[24][21]" - assert env.rail.get_full_transitions(24, 22) == 0, "[24][22]" - assert env.rail.get_full_transitions(24, 23) == 0, "[24][23]" - assert env.rail.get_full_transitions(24, 24) == 0, "[24][24]" - assert env.rail.get_full_transitions(25, 0) == 0, "[25][0]" - assert env.rail.get_full_transitions(25, 1) == 0, "[25][1]" - assert env.rail.get_full_transitions(25, 2) == 0, "[25][2]" - assert env.rail.get_full_transitions(25, 3) == 32800, "[25][3]" - assert env.rail.get_full_transitions(25, 4) == 32800, "[25][4]" - assert env.rail.get_full_transitions(25, 5) == 32800, "[25][5]" - assert env.rail.get_full_transitions(25, 6) == 32800, "[25][6]" - assert env.rail.get_full_transitions(25, 7) == 0, "[25][7]" - assert env.rail.get_full_transitions(25, 8) == 0, "[25][8]" - assert env.rail.get_full_transitions(25, 9) == 0, "[25][9]" - assert env.rail.get_full_transitions(25, 10) == 0, "[25][10]" - assert env.rail.get_full_transitions(25, 11) == 0, "[25][11]" - assert env.rail.get_full_transitions(25, 12) == 0, "[25][12]" - assert env.rail.get_full_transitions(25, 13) == 0, "[25][13]" - assert env.rail.get_full_transitions(25, 14) == 32800, "[25][14]" - assert env.rail.get_full_transitions(25, 15) == 0, "[25][15]" - assert env.rail.get_full_transitions(25, 16) == 0, "[25][16]" - assert env.rail.get_full_transitions(25, 17) == 0, "[25][17]" - assert env.rail.get_full_transitions(25, 18) == 0, "[25][18]" - assert env.rail.get_full_transitions(25, 19) == 0, "[25][19]" - assert env.rail.get_full_transitions(25, 20) == 0, "[25][20]" - assert env.rail.get_full_transitions(25, 21) == 0, "[25][21]" - assert env.rail.get_full_transitions(25, 22) == 0, "[25][22]" - assert env.rail.get_full_transitions(25, 23) == 0, "[25][23]" - assert env.rail.get_full_transitions(25, 24) == 0, "[25][24]" - assert env.rail.get_full_transitions(26, 0) == 0, "[26][0]" - assert env.rail.get_full_transitions(26, 1) == 0, "[26][1]" - assert env.rail.get_full_transitions(26, 2) == 0, "[26][2]" - assert env.rail.get_full_transitions(26, 3) == 32800, "[26][3]" - assert env.rail.get_full_transitions(26, 4) == 32800, "[26][4]" - assert env.rail.get_full_transitions(26, 5) == 32800, "[26][5]" - assert env.rail.get_full_transitions(26, 6) == 32800, "[26][6]" - assert env.rail.get_full_transitions(26, 7) == 0, "[26][7]" - assert env.rail.get_full_transitions(26, 8) == 0, "[26][8]" - assert env.rail.get_full_transitions(26, 9) == 0, "[26][9]" - assert env.rail.get_full_transitions(26, 10) == 0, "[26][10]" - assert env.rail.get_full_transitions(26, 11) == 0, "[26][11]" - assert env.rail.get_full_transitions(26, 12) == 0, "[26][12]" - assert env.rail.get_full_transitions(26, 13) == 0, "[26][13]" - assert env.rail.get_full_transitions(26, 14) == 32800, "[26][14]" - assert env.rail.get_full_transitions(26, 15) == 0, "[26][15]" - assert env.rail.get_full_transitions(26, 16) == 0, "[26][16]" - assert env.rail.get_full_transitions(26, 17) == 0, "[26][17]" - assert env.rail.get_full_transitions(26, 18) == 0, "[26][18]" - assert env.rail.get_full_transitions(26, 19) == 0, "[26][19]" - assert env.rail.get_full_transitions(26, 20) == 0, "[26][20]" - assert env.rail.get_full_transitions(26, 21) == 0, "[26][21]" - assert env.rail.get_full_transitions(26, 22) == 0, "[26][22]" - assert env.rail.get_full_transitions(26, 23) == 0, "[26][23]" - assert env.rail.get_full_transitions(26, 24) == 0, "[26][24]" - assert env.rail.get_full_transitions(27, 0) == 0, "[27][0]" - assert env.rail.get_full_transitions(27, 1) == 0, "[27][1]" - assert env.rail.get_full_transitions(27, 2) == 0, "[27][2]" - assert env.rail.get_full_transitions(27, 3) == 32800, "[27][3]" - assert env.rail.get_full_transitions(27, 4) == 32800, "[27][4]" - assert env.rail.get_full_transitions(27, 5) == 32800, "[27][5]" - assert env.rail.get_full_transitions(27, 6) == 32800, "[27][6]" - assert env.rail.get_full_transitions(27, 7) == 0, "[27][7]" - assert env.rail.get_full_transitions(27, 8) == 0, "[27][8]" - assert env.rail.get_full_transitions(27, 9) == 0, "[27][9]" - assert env.rail.get_full_transitions(27, 10) == 0, "[27][10]" - assert env.rail.get_full_transitions(27, 11) == 0, "[27][11]" - assert env.rail.get_full_transitions(27, 12) == 0, "[27][12]" - assert env.rail.get_full_transitions(27, 13) == 0, "[27][13]" - assert env.rail.get_full_transitions(27, 14) == 32800, "[27][14]" - assert env.rail.get_full_transitions(27, 15) == 0, "[27][15]" - assert env.rail.get_full_transitions(27, 16) == 0, "[27][16]" - assert env.rail.get_full_transitions(27, 17) == 0, "[27][17]" - assert env.rail.get_full_transitions(27, 18) == 0, "[27][18]" - assert env.rail.get_full_transitions(27, 19) == 0, "[27][19]" - assert env.rail.get_full_transitions(27, 20) == 0, "[27][20]" - assert env.rail.get_full_transitions(27, 21) == 0, "[27][21]" - assert env.rail.get_full_transitions(27, 22) == 0, "[27][22]" - assert env.rail.get_full_transitions(27, 23) == 0, "[27][23]" - assert env.rail.get_full_transitions(27, 24) == 0, "[27][24]" - assert env.rail.get_full_transitions(28, 0) == 0, "[28][0]" - assert env.rail.get_full_transitions(28, 1) == 0, "[28][1]" - assert env.rail.get_full_transitions(28, 2) == 0, "[28][2]" - assert env.rail.get_full_transitions(28, 3) == 49186, "[28][3]" - assert env.rail.get_full_transitions(28, 4) == 52275, "[28][4]" - assert env.rail.get_full_transitions(28, 5) == 52275, "[28][5]" - assert env.rail.get_full_transitions(28, 6) == 34864, "[28][6]" - assert env.rail.get_full_transitions(28, 7) == 0, "[28][7]" - assert env.rail.get_full_transitions(28, 8) == 0, "[28][8]" - assert env.rail.get_full_transitions(28, 9) == 0, "[28][9]" - assert env.rail.get_full_transitions(28, 10) == 0, "[28][10]" - assert env.rail.get_full_transitions(28, 11) == 0, "[28][11]" - assert env.rail.get_full_transitions(28, 12) == 0, "[28][12]" - assert env.rail.get_full_transitions(28, 13) == 0, "[28][13]" - assert env.rail.get_full_transitions(28, 14) == 32800, "[28][14]" - assert env.rail.get_full_transitions(28, 15) == 0, "[28][15]" - assert env.rail.get_full_transitions(28, 16) == 0, "[28][16]" - assert env.rail.get_full_transitions(28, 17) == 0, "[28][17]" - assert env.rail.get_full_transitions(28, 18) == 0, "[28][18]" - assert env.rail.get_full_transitions(28, 19) == 0, "[28][19]" - assert env.rail.get_full_transitions(28, 20) == 0, "[28][20]" - assert env.rail.get_full_transitions(28, 21) == 0, "[28][21]" - assert env.rail.get_full_transitions(28, 22) == 0, "[28][22]" - assert env.rail.get_full_transitions(28, 23) == 0, "[28][23]" - assert env.rail.get_full_transitions(28, 24) == 0, "[28][24]" - assert env.rail.get_full_transitions(29, 0) == 0, "[29][0]" - assert env.rail.get_full_transitions(29, 1) == 0, "[29][1]" - assert env.rail.get_full_transitions(29, 2) == 0, "[29][2]" - assert env.rail.get_full_transitions(29, 3) == 72, "[29][3]" - assert env.rail.get_full_transitions(29, 4) == 1097, "[29][4]" - assert env.rail.get_full_transitions(29, 5) == 1097, "[29][5]" - assert env.rail.get_full_transitions(29, 6) == 1097, "[29][6]" - assert env.rail.get_full_transitions(29, 7) == 1025, "[29][7]" - assert env.rail.get_full_transitions(29, 8) == 1025, "[29][8]" - assert env.rail.get_full_transitions(29, 9) == 1025, "[29][9]" - assert env.rail.get_full_transitions(29, 10) == 1025, "[29][10]" - assert env.rail.get_full_transitions(29, 11) == 1025, "[29][11]" - assert env.rail.get_full_transitions(29, 12) == 1025, "[29][12]" - assert env.rail.get_full_transitions(29, 13) == 1025, "[29][13]" - assert env.rail.get_full_transitions(29, 14) == 2064, "[29][14]" - assert env.rail.get_full_transitions(29, 15) == 0, "[29][15]" - assert env.rail.get_full_transitions(29, 16) == 0, "[29][16]" - assert env.rail.get_full_transitions(29, 17) == 0, "[29][17]" - assert env.rail.get_full_transitions(29, 18) == 0, "[29][18]" - assert env.rail.get_full_transitions(29, 19) == 0, "[29][19]" - assert env.rail.get_full_transitions(29, 20) == 0, "[29][20]" - assert env.rail.get_full_transitions(29, 21) == 0, "[29][21]" - assert env.rail.get_full_transitions(29, 22) == 0, "[29][22]" - assert env.rail.get_full_transitions(29, 23) == 0, "[29][23]" - assert env.rail.get_full_transitions(29, 24) == 0, "[29][24]" - + for r in range(env.height): + for c in range(env.width): + print("assert env.rail.get_full_transitions({}, {}) == {}, \"[{}][{}]\"".format(r, c, + env.rail.get_full_transitions( + r, c), r, c)) + assert env.rail.get_full_transitions(0, 1) == 0, "[0][1]" + assert env.rail.get_full_transitions(0, 2) == 0, "[0][2]" + assert env.rail.get_full_transitions(0, 3) == 0, "[0][3]" + assert env.rail.get_full_transitions(0, 4) == 0, "[0][4]" + assert env.rail.get_full_transitions(0, 5) == 0, "[0][5]" + assert env.rail.get_full_transitions(0, 6) == 0, "[0][6]" + assert env.rail.get_full_transitions(0, 7) == 0, "[0][7]" + assert env.rail.get_full_transitions(0, 8) == 0, "[0][8]" + assert env.rail.get_full_transitions(0, 9) == 0, "[0][9]" + assert env.rail.get_full_transitions(0, 10) == 0, "[0][10]" + assert env.rail.get_full_transitions(0, 11) == 0, "[0][11]" + assert env.rail.get_full_transitions(0, 12) == 0, "[0][12]" + assert env.rail.get_full_transitions(0, 13) == 0, "[0][13]" + assert env.rail.get_full_transitions(0, 14) == 0, "[0][14]" + assert env.rail.get_full_transitions(0, 15) == 0, "[0][15]" + assert env.rail.get_full_transitions(0, 16) == 0, "[0][16]" + assert env.rail.get_full_transitions(0, 17) == 0, "[0][17]" + assert env.rail.get_full_transitions(0, 18) == 0, "[0][18]" + assert env.rail.get_full_transitions(0, 19) == 0, "[0][19]" + assert env.rail.get_full_transitions(0, 20) == 0, "[0][20]" + assert env.rail.get_full_transitions(0, 21) == 0, "[0][21]" + assert env.rail.get_full_transitions(0, 22) == 0, "[0][22]" + assert env.rail.get_full_transitions(0, 23) == 0, "[0][23]" + assert env.rail.get_full_transitions(0, 24) == 0, "[0][24]" + assert env.rail.get_full_transitions(1, 0) == 0, "[1][0]" + assert env.rail.get_full_transitions(1, 1) == 0, "[1][1]" + assert env.rail.get_full_transitions(1, 2) == 0, "[1][2]" + assert env.rail.get_full_transitions(1, 3) == 0, "[1][3]" + assert env.rail.get_full_transitions(1, 4) == 0, "[1][4]" + assert env.rail.get_full_transitions(1, 5) == 0, "[1][5]" + assert env.rail.get_full_transitions(1, 6) == 0, "[1][6]" + assert env.rail.get_full_transitions(1, 7) == 0, "[1][7]" + assert env.rail.get_full_transitions(1, 8) == 0, "[1][8]" + assert env.rail.get_full_transitions(1, 9) == 0, "[1][9]" + assert env.rail.get_full_transitions(1, 10) == 0, "[1][10]" + assert env.rail.get_full_transitions(1, 11) == 0, "[1][11]" + assert env.rail.get_full_transitions(1, 12) == 0, "[1][12]" + assert env.rail.get_full_transitions(1, 13) == 0, "[1][13]" + assert env.rail.get_full_transitions(1, 14) == 0, "[1][14]" + assert env.rail.get_full_transitions(1, 15) == 0, "[1][15]" + assert env.rail.get_full_transitions(1, 16) == 0, "[1][16]" + assert env.rail.get_full_transitions(1, 17) == 0, "[1][17]" + assert env.rail.get_full_transitions(1, 18) == 0, "[1][18]" + assert env.rail.get_full_transitions(1, 19) == 0, "[1][19]" + assert env.rail.get_full_transitions(1, 20) == 0, "[1][20]" + assert env.rail.get_full_transitions(1, 21) == 0, "[1][21]" + assert env.rail.get_full_transitions(1, 22) == 0, "[1][22]" + assert env.rail.get_full_transitions(1, 23) == 0, "[1][23]" + assert env.rail.get_full_transitions(1, 24) == 0, "[1][24]" + assert env.rail.get_full_transitions(2, 0) == 0, "[2][0]" + assert env.rail.get_full_transitions(2, 1) == 0, "[2][1]" + assert env.rail.get_full_transitions(2, 2) == 0, "[2][2]" + assert env.rail.get_full_transitions(2, 3) == 0, "[2][3]" + assert env.rail.get_full_transitions(2, 4) == 0, "[2][4]" + assert env.rail.get_full_transitions(2, 5) == 0, "[2][5]" + assert env.rail.get_full_transitions(2, 6) == 0, "[2][6]" + assert env.rail.get_full_transitions(2, 7) == 0, "[2][7]" + assert env.rail.get_full_transitions(2, 8) == 0, "[2][8]" + assert env.rail.get_full_transitions(2, 9) == 0, "[2][9]" + assert env.rail.get_full_transitions(2, 10) == 0, "[2][10]" + assert env.rail.get_full_transitions(2, 11) == 0, "[2][11]" + assert env.rail.get_full_transitions(2, 12) == 0, "[2][12]" + assert env.rail.get_full_transitions(2, 13) == 0, "[2][13]" + assert env.rail.get_full_transitions(2, 14) == 0, "[2][14]" + assert env.rail.get_full_transitions(2, 15) == 0, "[2][15]" + assert env.rail.get_full_transitions(2, 16) == 0, "[2][16]" + assert env.rail.get_full_transitions(2, 17) == 0, "[2][17]" + assert env.rail.get_full_transitions(2, 18) == 0, "[2][18]" + assert env.rail.get_full_transitions(2, 19) == 0, "[2][19]" + assert env.rail.get_full_transitions(2, 20) == 0, "[2][20]" + assert env.rail.get_full_transitions(2, 21) == 0, "[2][21]" + assert env.rail.get_full_transitions(2, 22) == 0, "[2][22]" + assert env.rail.get_full_transitions(2, 23) == 0, "[2][23]" + assert env.rail.get_full_transitions(2, 24) == 0, "[2][24]" + assert env.rail.get_full_transitions(3, 0) == 0, "[3][0]" + assert env.rail.get_full_transitions(3, 1) == 0, "[3][1]" + assert env.rail.get_full_transitions(3, 2) == 0, "[3][2]" + assert env.rail.get_full_transitions(3, 3) == 0, "[3][3]" + assert env.rail.get_full_transitions(3, 4) == 0, "[3][4]" + assert env.rail.get_full_transitions(3, 5) == 0, "[3][5]" + assert env.rail.get_full_transitions(3, 6) == 0, "[3][6]" + assert env.rail.get_full_transitions(3, 7) == 0, "[3][7]" + assert env.rail.get_full_transitions(3, 8) == 0, "[3][8]" + assert env.rail.get_full_transitions(3, 9) == 0, "[3][9]" + assert env.rail.get_full_transitions(3, 10) == 0, "[3][10]" + assert env.rail.get_full_transitions(3, 11) == 0, "[3][11]" + assert env.rail.get_full_transitions(3, 12) == 0, "[3][12]" + assert env.rail.get_full_transitions(3, 13) == 0, "[3][13]" + assert env.rail.get_full_transitions(3, 14) == 0, "[3][14]" + assert env.rail.get_full_transitions(3, 15) == 0, "[3][15]" + assert env.rail.get_full_transitions(3, 16) == 0, "[3][16]" + assert env.rail.get_full_transitions(3, 17) == 0, "[3][17]" + assert env.rail.get_full_transitions(3, 18) == 0, "[3][18]" + assert env.rail.get_full_transitions(3, 19) == 0, "[3][19]" + assert env.rail.get_full_transitions(3, 20) == 0, "[3][20]" + assert env.rail.get_full_transitions(3, 21) == 0, "[3][21]" + assert env.rail.get_full_transitions(3, 22) == 0, "[3][22]" + assert env.rail.get_full_transitions(3, 23) == 0, "[3][23]" + assert env.rail.get_full_transitions(3, 24) == 0, "[3][24]" + assert env.rail.get_full_transitions(4, 0) == 0, "[4][0]" + assert env.rail.get_full_transitions(4, 1) == 0, "[4][1]" + assert env.rail.get_full_transitions(4, 2) == 0, "[4][2]" + assert env.rail.get_full_transitions(4, 3) == 0, "[4][3]" + assert env.rail.get_full_transitions(4, 4) == 0, "[4][4]" + assert env.rail.get_full_transitions(4, 5) == 0, "[4][5]" + assert env.rail.get_full_transitions(4, 6) == 0, "[4][6]" + assert env.rail.get_full_transitions(4, 7) == 0, "[4][7]" + assert env.rail.get_full_transitions(4, 8) == 0, "[4][8]" + assert env.rail.get_full_transitions(4, 9) == 0, "[4][9]" + assert env.rail.get_full_transitions(4, 10) == 0, "[4][10]" + assert env.rail.get_full_transitions(4, 11) == 0, "[4][11]" + assert env.rail.get_full_transitions(4, 12) == 0, "[4][12]" + assert env.rail.get_full_transitions(4, 13) == 0, "[4][13]" + assert env.rail.get_full_transitions(4, 14) == 0, "[4][14]" + assert env.rail.get_full_transitions(4, 15) == 0, "[4][15]" + assert env.rail.get_full_transitions(4, 16) == 0, "[4][16]" + assert env.rail.get_full_transitions(4, 17) == 0, "[4][17]" + assert env.rail.get_full_transitions(4, 18) == 0, "[4][18]" + assert env.rail.get_full_transitions(4, 19) == 0, "[4][19]" + assert env.rail.get_full_transitions(4, 20) == 0, "[4][20]" + assert env.rail.get_full_transitions(4, 21) == 0, "[4][21]" + assert env.rail.get_full_transitions(4, 22) == 0, "[4][22]" + assert env.rail.get_full_transitions(4, 23) == 0, "[4][23]" + assert env.rail.get_full_transitions(4, 24) == 0, "[4][24]" + assert env.rail.get_full_transitions(5, 0) == 0, "[5][0]" + assert env.rail.get_full_transitions(5, 1) == 0, "[5][1]" + assert env.rail.get_full_transitions(5, 2) == 0, "[5][2]" + assert env.rail.get_full_transitions(5, 3) == 0, "[5][3]" + assert env.rail.get_full_transitions(5, 4) == 0, "[5][4]" + assert env.rail.get_full_transitions(5, 5) == 0, "[5][5]" + assert env.rail.get_full_transitions(5, 6) == 0, "[5][6]" + assert env.rail.get_full_transitions(5, 7) == 0, "[5][7]" + assert env.rail.get_full_transitions(5, 8) == 0, "[5][8]" + assert env.rail.get_full_transitions(5, 9) == 16386, "[5][9]" + assert env.rail.get_full_transitions(5, 10) == 1025, "[5][10]" + assert env.rail.get_full_transitions(5, 11) == 1025, "[5][11]" + assert env.rail.get_full_transitions(5, 12) == 1025, "[5][12]" + assert env.rail.get_full_transitions(5, 13) == 1025, "[5][13]" + assert env.rail.get_full_transitions(5, 14) == 1025, "[5][14]" + assert env.rail.get_full_transitions(5, 15) == 1025, "[5][15]" + assert env.rail.get_full_transitions(5, 16) == 1025, "[5][16]" + assert env.rail.get_full_transitions(5, 17) == 4608, "[5][17]" + assert env.rail.get_full_transitions(5, 18) == 0, "[5][18]" + assert env.rail.get_full_transitions(5, 19) == 0, "[5][19]" + assert env.rail.get_full_transitions(5, 20) == 0, "[5][20]" + assert env.rail.get_full_transitions(5, 21) == 0, "[5][21]" + assert env.rail.get_full_transitions(5, 22) == 0, "[5][22]" + assert env.rail.get_full_transitions(5, 23) == 0, "[5][23]" + assert env.rail.get_full_transitions(5, 24) == 0, "[5][24]" + assert env.rail.get_full_transitions(6, 0) == 16386, "[6][0]" + assert env.rail.get_full_transitions(6, 1) == 1025, "[6][1]" + assert env.rail.get_full_transitions(6, 2) == 1025, "[6][2]" + assert env.rail.get_full_transitions(6, 3) == 5633, "[6][3]" + assert env.rail.get_full_transitions(6, 4) == 1025, "[6][4]" + assert env.rail.get_full_transitions(6, 5) == 1025, "[6][5]" + assert env.rail.get_full_transitions(6, 6) == 1025, "[6][6]" + assert env.rail.get_full_transitions(6, 7) == 1025, "[6][7]" + assert env.rail.get_full_transitions(6, 8) == 1025, "[6][8]" + assert env.rail.get_full_transitions(6, 9) == 52275, "[6][9]" + assert env.rail.get_full_transitions(6, 10) == 1025, "[6][10]" + assert env.rail.get_full_transitions(6, 11) == 1025, "[6][11]" + assert env.rail.get_full_transitions(6, 12) == 1025, "[6][12]" + assert env.rail.get_full_transitions(6, 13) == 1025, "[6][13]" + assert env.rail.get_full_transitions(6, 14) == 1025, "[6][14]" + assert env.rail.get_full_transitions(6, 15) == 1025, "[6][15]" + assert env.rail.get_full_transitions(6, 16) == 17411, "[6][16]" + assert env.rail.get_full_transitions(6, 17) == 1097, "[6][17]" + assert env.rail.get_full_transitions(6, 18) == 1025, "[6][18]" + assert env.rail.get_full_transitions(6, 19) == 4608, "[6][19]" + assert env.rail.get_full_transitions(6, 20) == 0, "[6][20]" + assert env.rail.get_full_transitions(6, 21) == 0, "[6][21]" + assert env.rail.get_full_transitions(6, 22) == 0, "[6][22]" + assert env.rail.get_full_transitions(6, 23) == 0, "[6][23]" + assert env.rail.get_full_transitions(6, 24) == 0, "[6][24]" + assert env.rail.get_full_transitions(7, 0) == 32800, "[7][0]" + assert env.rail.get_full_transitions(7, 1) == 0, "[7][1]" + assert env.rail.get_full_transitions(7, 2) == 0, "[7][2]" + assert env.rail.get_full_transitions(7, 3) == 72, "[7][3]" + assert env.rail.get_full_transitions(7, 4) == 1025, "[7][4]" + assert env.rail.get_full_transitions(7, 5) == 1025, "[7][5]" + assert env.rail.get_full_transitions(7, 6) == 1025, "[7][6]" + assert env.rail.get_full_transitions(7, 7) == 1025, "[7][7]" + assert env.rail.get_full_transitions(7, 8) == 1025, "[7][8]" + assert env.rail.get_full_transitions(7, 9) == 2064, "[7][9]" + assert env.rail.get_full_transitions(7, 10) == 4, "[7][10]" + assert env.rail.get_full_transitions(7, 11) == 5633, "[7][11]" + assert env.rail.get_full_transitions(7, 12) == 1025, "[7][12]" + assert env.rail.get_full_transitions(7, 13) == 1025, "[7][13]" + assert env.rail.get_full_transitions(7, 14) == 1025, "[7][14]" + assert env.rail.get_full_transitions(7, 15) == 17411, "[7][15]" + assert env.rail.get_full_transitions(7, 16) == 2064, "[7][16]" + assert env.rail.get_full_transitions(7, 17) == 0, "[7][17]" + assert env.rail.get_full_transitions(7, 18) == 0, "[7][18]" + assert env.rail.get_full_transitions(7, 19) == 32800, "[7][19]" + assert env.rail.get_full_transitions(7, 20) == 0, "[7][20]" + assert env.rail.get_full_transitions(7, 21) == 0, "[7][21]" + assert env.rail.get_full_transitions(7, 22) == 0, "[7][22]" + assert env.rail.get_full_transitions(7, 23) == 0, "[7][23]" + assert env.rail.get_full_transitions(7, 24) == 0, "[7][24]" + assert env.rail.get_full_transitions(8, 0) == 32800, "[8][0]" + assert env.rail.get_full_transitions(8, 1) == 0, "[8][1]" + assert env.rail.get_full_transitions(8, 2) == 0, "[8][2]" + assert env.rail.get_full_transitions(8, 3) == 0, "[8][3]" + assert env.rail.get_full_transitions(8, 4) == 0, "[8][4]" + assert env.rail.get_full_transitions(8, 5) == 0, "[8][5]" + assert env.rail.get_full_transitions(8, 6) == 0, "[8][6]" + assert env.rail.get_full_transitions(8, 7) == 0, "[8][7]" + assert env.rail.get_full_transitions(8, 8) == 0, "[8][8]" + assert env.rail.get_full_transitions(8, 9) == 0, "[8][9]" + assert env.rail.get_full_transitions(8, 10) == 0, "[8][10]" + assert env.rail.get_full_transitions(8, 11) == 72, "[8][11]" + assert env.rail.get_full_transitions(8, 12) == 1025, "[8][12]" + assert env.rail.get_full_transitions(8, 13) == 1025, "[8][13]" + assert env.rail.get_full_transitions(8, 14) == 1025, "[8][14]" + assert env.rail.get_full_transitions(8, 15) == 2064, "[8][15]" + assert env.rail.get_full_transitions(8, 16) == 0, "[8][16]" + assert env.rail.get_full_transitions(8, 17) == 0, "[8][17]" + assert env.rail.get_full_transitions(8, 18) == 0, "[8][18]" + assert env.rail.get_full_transitions(8, 19) == 32800, "[8][19]" + assert env.rail.get_full_transitions(8, 20) == 0, "[8][20]" + assert env.rail.get_full_transitions(8, 21) == 0, "[8][21]" + assert env.rail.get_full_transitions(8, 22) == 0, "[8][22]" + assert env.rail.get_full_transitions(8, 23) == 0, "[8][23]" + assert env.rail.get_full_transitions(8, 24) == 0, "[8][24]" + assert env.rail.get_full_transitions(9, 0) == 32800, "[9][0]" + assert env.rail.get_full_transitions(9, 1) == 0, "[9][1]" + assert env.rail.get_full_transitions(9, 2) == 0, "[9][2]" + assert env.rail.get_full_transitions(9, 3) == 0, "[9][3]" + assert env.rail.get_full_transitions(9, 4) == 0, "[9][4]" + assert env.rail.get_full_transitions(9, 5) == 0, "[9][5]" + assert env.rail.get_full_transitions(9, 6) == 0, "[9][6]" + assert env.rail.get_full_transitions(9, 7) == 0, "[9][7]" + assert env.rail.get_full_transitions(9, 8) == 0, "[9][8]" + assert env.rail.get_full_transitions(9, 9) == 0, "[9][9]" + assert env.rail.get_full_transitions(9, 10) == 0, "[9][10]" + assert env.rail.get_full_transitions(9, 11) == 0, "[9][11]" + assert env.rail.get_full_transitions(9, 12) == 0, "[9][12]" + assert env.rail.get_full_transitions(9, 13) == 0, "[9][13]" + assert env.rail.get_full_transitions(9, 14) == 0, "[9][14]" + assert env.rail.get_full_transitions(9, 15) == 0, "[9][15]" + assert env.rail.get_full_transitions(9, 16) == 0, "[9][16]" + assert env.rail.get_full_transitions(9, 17) == 0, "[9][17]" + assert env.rail.get_full_transitions(9, 18) == 0, "[9][18]" + assert env.rail.get_full_transitions(9, 19) == 32800, "[9][19]" + assert env.rail.get_full_transitions(9, 20) == 0, "[9][20]" + assert env.rail.get_full_transitions(9, 21) == 0, "[9][21]" + assert env.rail.get_full_transitions(9, 22) == 0, "[9][22]" + assert env.rail.get_full_transitions(9, 23) == 0, "[9][23]" + assert env.rail.get_full_transitions(9, 24) == 0, "[9][24]" + assert env.rail.get_full_transitions(10, 0) == 32800, "[10][0]" + assert env.rail.get_full_transitions(10, 1) == 0, "[10][1]" + assert env.rail.get_full_transitions(10, 2) == 0, "[10][2]" + assert env.rail.get_full_transitions(10, 3) == 0, "[10][3]" + assert env.rail.get_full_transitions(10, 4) == 0, "[10][4]" + assert env.rail.get_full_transitions(10, 5) == 0, "[10][5]" + assert env.rail.get_full_transitions(10, 6) == 0, "[10][6]" + assert env.rail.get_full_transitions(10, 7) == 0, "[10][7]" + assert env.rail.get_full_transitions(10, 8) == 0, "[10][8]" + assert env.rail.get_full_transitions(10, 9) == 0, "[10][9]" + assert env.rail.get_full_transitions(10, 10) == 0, "[10][10]" + assert env.rail.get_full_transitions(10, 11) == 0, "[10][11]" + assert env.rail.get_full_transitions(10, 12) == 0, "[10][12]" + assert env.rail.get_full_transitions(10, 13) == 0, "[10][13]" + assert env.rail.get_full_transitions(10, 14) == 0, "[10][14]" + assert env.rail.get_full_transitions(10, 15) == 0, "[10][15]" + assert env.rail.get_full_transitions(10, 16) == 0, "[10][16]" + assert env.rail.get_full_transitions(10, 17) == 0, "[10][17]" + assert env.rail.get_full_transitions(10, 18) == 0, "[10][18]" + assert env.rail.get_full_transitions(10, 19) == 32800, "[10][19]" + assert env.rail.get_full_transitions(10, 20) == 0, "[10][20]" + assert env.rail.get_full_transitions(10, 21) == 0, "[10][21]" + assert env.rail.get_full_transitions(10, 22) == 0, "[10][22]" + assert env.rail.get_full_transitions(10, 23) == 0, "[10][23]" + assert env.rail.get_full_transitions(10, 24) == 0, "[10][24]" + assert env.rail.get_full_transitions(11, 0) == 32800, "[11][0]" + assert env.rail.get_full_transitions(11, 1) == 0, "[11][1]" + assert env.rail.get_full_transitions(11, 2) == 0, "[11][2]" + assert env.rail.get_full_transitions(11, 3) == 0, "[11][3]" + assert env.rail.get_full_transitions(11, 4) == 0, "[11][4]" + assert env.rail.get_full_transitions(11, 5) == 0, "[11][5]" + assert env.rail.get_full_transitions(11, 6) == 0, "[11][6]" + assert env.rail.get_full_transitions(11, 7) == 0, "[11][7]" + assert env.rail.get_full_transitions(11, 8) == 0, "[11][8]" + assert env.rail.get_full_transitions(11, 9) == 0, "[11][9]" + assert env.rail.get_full_transitions(11, 10) == 0, "[11][10]" + assert env.rail.get_full_transitions(11, 11) == 0, "[11][11]" + assert env.rail.get_full_transitions(11, 12) == 0, "[11][12]" + assert env.rail.get_full_transitions(11, 13) == 0, "[11][13]" + assert env.rail.get_full_transitions(11, 14) == 0, "[11][14]" + assert env.rail.get_full_transitions(11, 15) == 0, "[11][15]" + assert env.rail.get_full_transitions(11, 16) == 0, "[11][16]" + assert env.rail.get_full_transitions(11, 17) == 0, "[11][17]" + assert env.rail.get_full_transitions(11, 18) == 0, "[11][18]" + assert env.rail.get_full_transitions(11, 19) == 32800, "[11][19]" + assert env.rail.get_full_transitions(11, 20) == 0, "[11][20]" + assert env.rail.get_full_transitions(11, 21) == 0, "[11][21]" + assert env.rail.get_full_transitions(11, 22) == 0, "[11][22]" + assert env.rail.get_full_transitions(11, 23) == 0, "[11][23]" + assert env.rail.get_full_transitions(11, 24) == 0, "[11][24]" + assert env.rail.get_full_transitions(12, 0) == 32800, "[12][0]" + assert env.rail.get_full_transitions(12, 1) == 0, "[12][1]" + assert env.rail.get_full_transitions(12, 2) == 0, "[12][2]" + assert env.rail.get_full_transitions(12, 3) == 0, "[12][3]" + assert env.rail.get_full_transitions(12, 4) == 0, "[12][4]" + assert env.rail.get_full_transitions(12, 5) == 0, "[12][5]" + assert env.rail.get_full_transitions(12, 6) == 0, "[12][6]" + assert env.rail.get_full_transitions(12, 7) == 0, "[12][7]" + assert env.rail.get_full_transitions(12, 8) == 0, "[12][8]" + assert env.rail.get_full_transitions(12, 9) == 0, "[12][9]" + assert env.rail.get_full_transitions(12, 10) == 0, "[12][10]" + assert env.rail.get_full_transitions(12, 11) == 0, "[12][11]" + assert env.rail.get_full_transitions(12, 12) == 0, "[12][12]" + assert env.rail.get_full_transitions(12, 13) == 0, "[12][13]" + assert env.rail.get_full_transitions(12, 14) == 0, "[12][14]" + assert env.rail.get_full_transitions(12, 15) == 0, "[12][15]" + assert env.rail.get_full_transitions(12, 16) == 0, "[12][16]" + assert env.rail.get_full_transitions(12, 17) == 0, "[12][17]" + assert env.rail.get_full_transitions(12, 18) == 0, "[12][18]" + assert env.rail.get_full_transitions(12, 19) == 32800, "[12][19]" + assert env.rail.get_full_transitions(12, 20) == 0, "[12][20]" + assert env.rail.get_full_transitions(12, 21) == 0, "[12][21]" + assert env.rail.get_full_transitions(12, 22) == 0, "[12][22]" + assert env.rail.get_full_transitions(12, 23) == 0, "[12][23]" + assert env.rail.get_full_transitions(12, 24) == 0, "[12][24]" + assert env.rail.get_full_transitions(13, 0) == 32800, "[13][0]" + assert env.rail.get_full_transitions(13, 1) == 0, "[13][1]" + assert env.rail.get_full_transitions(13, 2) == 0, "[13][2]" + assert env.rail.get_full_transitions(13, 3) == 0, "[13][3]" + assert env.rail.get_full_transitions(13, 4) == 0, "[13][4]" + assert env.rail.get_full_transitions(13, 5) == 0, "[13][5]" + assert env.rail.get_full_transitions(13, 6) == 0, "[13][6]" + assert env.rail.get_full_transitions(13, 7) == 0, "[13][7]" + assert env.rail.get_full_transitions(13, 8) == 0, "[13][8]" + assert env.rail.get_full_transitions(13, 9) == 0, "[13][9]" + assert env.rail.get_full_transitions(13, 10) == 0, "[13][10]" + assert env.rail.get_full_transitions(13, 11) == 0, "[13][11]" + assert env.rail.get_full_transitions(13, 12) == 0, "[13][12]" + assert env.rail.get_full_transitions(13, 13) == 0, "[13][13]" + assert env.rail.get_full_transitions(13, 14) == 0, "[13][14]" + assert env.rail.get_full_transitions(13, 15) == 0, "[13][15]" + assert env.rail.get_full_transitions(13, 16) == 0, "[13][16]" + assert env.rail.get_full_transitions(13, 17) == 0, "[13][17]" + assert env.rail.get_full_transitions(13, 18) == 0, "[13][18]" + assert env.rail.get_full_transitions(13, 19) == 32800, "[13][19]" + assert env.rail.get_full_transitions(13, 20) == 0, "[13][20]" + assert env.rail.get_full_transitions(13, 21) == 0, "[13][21]" + assert env.rail.get_full_transitions(13, 22) == 0, "[13][22]" + assert env.rail.get_full_transitions(13, 23) == 0, "[13][23]" + assert env.rail.get_full_transitions(13, 24) == 0, "[13][24]" + assert env.rail.get_full_transitions(14, 0) == 32800, "[14][0]" + assert env.rail.get_full_transitions(14, 1) == 0, "[14][1]" + assert env.rail.get_full_transitions(14, 2) == 0, "[14][2]" + assert env.rail.get_full_transitions(14, 3) == 0, "[14][3]" + assert env.rail.get_full_transitions(14, 4) == 0, "[14][4]" + assert env.rail.get_full_transitions(14, 5) == 0, "[14][5]" + assert env.rail.get_full_transitions(14, 6) == 0, "[14][6]" + assert env.rail.get_full_transitions(14, 7) == 0, "[14][7]" + assert env.rail.get_full_transitions(14, 8) == 0, "[14][8]" + assert env.rail.get_full_transitions(14, 9) == 0, "[14][9]" + assert env.rail.get_full_transitions(14, 10) == 0, "[14][10]" + assert env.rail.get_full_transitions(14, 11) == 0, "[14][11]" + assert env.rail.get_full_transitions(14, 12) == 0, "[14][12]" + assert env.rail.get_full_transitions(14, 13) == 0, "[14][13]" + assert env.rail.get_full_transitions(14, 14) == 0, "[14][14]" + assert env.rail.get_full_transitions(14, 15) == 0, "[14][15]" + assert env.rail.get_full_transitions(14, 16) == 0, "[14][16]" + assert env.rail.get_full_transitions(14, 17) == 0, "[14][17]" + assert env.rail.get_full_transitions(14, 18) == 0, "[14][18]" + assert env.rail.get_full_transitions(14, 19) == 32800, "[14][19]" + assert env.rail.get_full_transitions(14, 20) == 0, "[14][20]" + assert env.rail.get_full_transitions(14, 21) == 0, "[14][21]" + assert env.rail.get_full_transitions(14, 22) == 0, "[14][22]" + assert env.rail.get_full_transitions(14, 23) == 0, "[14][23]" + assert env.rail.get_full_transitions(14, 24) == 0, "[14][24]" + assert env.rail.get_full_transitions(15, 0) == 32800, "[15][0]" + assert env.rail.get_full_transitions(15, 1) == 0, "[15][1]" + assert env.rail.get_full_transitions(15, 2) == 0, "[15][2]" + assert env.rail.get_full_transitions(15, 3) == 0, "[15][3]" + assert env.rail.get_full_transitions(15, 4) == 0, "[15][4]" + assert env.rail.get_full_transitions(15, 5) == 0, "[15][5]" + assert env.rail.get_full_transitions(15, 6) == 0, "[15][6]" + assert env.rail.get_full_transitions(15, 7) == 0, "[15][7]" + assert env.rail.get_full_transitions(15, 8) == 0, "[15][8]" + assert env.rail.get_full_transitions(15, 9) == 0, "[15][9]" + assert env.rail.get_full_transitions(15, 10) == 0, "[15][10]" + assert env.rail.get_full_transitions(15, 11) == 0, "[15][11]" + assert env.rail.get_full_transitions(15, 12) == 0, "[15][12]" + assert env.rail.get_full_transitions(15, 13) == 0, "[15][13]" + assert env.rail.get_full_transitions(15, 14) == 0, "[15][14]" + assert env.rail.get_full_transitions(15, 15) == 0, "[15][15]" + assert env.rail.get_full_transitions(15, 16) == 0, "[15][16]" + assert env.rail.get_full_transitions(15, 17) == 0, "[15][17]" + assert env.rail.get_full_transitions(15, 18) == 0, "[15][18]" + assert env.rail.get_full_transitions(15, 19) == 32800, "[15][19]" + assert env.rail.get_full_transitions(15, 20) == 0, "[15][20]" + assert env.rail.get_full_transitions(15, 21) == 0, "[15][21]" + assert env.rail.get_full_transitions(15, 22) == 0, "[15][22]" + assert env.rail.get_full_transitions(15, 23) == 0, "[15][23]" + assert env.rail.get_full_transitions(15, 24) == 0, "[15][24]" + assert env.rail.get_full_transitions(16, 0) == 32800, "[16][0]" + assert env.rail.get_full_transitions(16, 1) == 0, "[16][1]" + assert env.rail.get_full_transitions(16, 2) == 0, "[16][2]" + assert env.rail.get_full_transitions(16, 3) == 0, "[16][3]" + assert env.rail.get_full_transitions(16, 4) == 0, "[16][4]" + assert env.rail.get_full_transitions(16, 5) == 0, "[16][5]" + assert env.rail.get_full_transitions(16, 6) == 0, "[16][6]" + assert env.rail.get_full_transitions(16, 7) == 0, "[16][7]" + assert env.rail.get_full_transitions(16, 8) == 0, "[16][8]" + assert env.rail.get_full_transitions(16, 9) == 0, "[16][9]" + assert env.rail.get_full_transitions(16, 10) == 0, "[16][10]" + assert env.rail.get_full_transitions(16, 11) == 0, "[16][11]" + assert env.rail.get_full_transitions(16, 12) == 0, "[16][12]" + assert env.rail.get_full_transitions(16, 13) == 0, "[16][13]" + assert env.rail.get_full_transitions(16, 14) == 0, "[16][14]" + assert env.rail.get_full_transitions(16, 15) == 0, "[16][15]" + assert env.rail.get_full_transitions(16, 16) == 0, "[16][16]" + assert env.rail.get_full_transitions(16, 17) == 0, "[16][17]" + assert env.rail.get_full_transitions(16, 18) == 0, "[16][18]" + assert env.rail.get_full_transitions(16, 19) == 32800, "[16][19]" + assert env.rail.get_full_transitions(16, 20) == 0, "[16][20]" + assert env.rail.get_full_transitions(16, 21) == 0, "[16][21]" + assert env.rail.get_full_transitions(16, 22) == 0, "[16][22]" + assert env.rail.get_full_transitions(16, 23) == 0, "[16][23]" + assert env.rail.get_full_transitions(16, 24) == 0, "[16][24]" + assert env.rail.get_full_transitions(17, 0) == 32800, "[17][0]" + assert env.rail.get_full_transitions(17, 1) == 0, "[17][1]" + assert env.rail.get_full_transitions(17, 2) == 0, "[17][2]" + assert env.rail.get_full_transitions(17, 3) == 0, "[17][3]" + assert env.rail.get_full_transitions(17, 4) == 0, "[17][4]" + assert env.rail.get_full_transitions(17, 5) == 0, "[17][5]" + assert env.rail.get_full_transitions(17, 6) == 0, "[17][6]" + assert env.rail.get_full_transitions(17, 7) == 0, "[17][7]" + assert env.rail.get_full_transitions(17, 8) == 0, "[17][8]" + assert env.rail.get_full_transitions(17, 9) == 0, "[17][9]" + assert env.rail.get_full_transitions(17, 10) == 0, "[17][10]" + assert env.rail.get_full_transitions(17, 11) == 0, "[17][11]" + assert env.rail.get_full_transitions(17, 12) == 0, "[17][12]" + assert env.rail.get_full_transitions(17, 13) == 0, "[17][13]" + assert env.rail.get_full_transitions(17, 14) == 0, "[17][14]" + assert env.rail.get_full_transitions(17, 15) == 0, "[17][15]" + assert env.rail.get_full_transitions(17, 16) == 0, "[17][16]" + assert env.rail.get_full_transitions(17, 17) == 0, "[17][17]" + assert env.rail.get_full_transitions(17, 18) == 0, "[17][18]" + assert env.rail.get_full_transitions(17, 19) == 32800, "[17][19]" + assert env.rail.get_full_transitions(17, 20) == 0, "[17][20]" + assert env.rail.get_full_transitions(17, 21) == 0, "[17][21]" + assert env.rail.get_full_transitions(17, 22) == 0, "[17][22]" + assert env.rail.get_full_transitions(17, 23) == 0, "[17][23]" + assert env.rail.get_full_transitions(17, 24) == 0, "[17][24]" + assert env.rail.get_full_transitions(18, 0) == 72, "[18][0]" + assert env.rail.get_full_transitions(18, 1) == 1025, "[18][1]" + assert env.rail.get_full_transitions(18, 2) == 1025, "[18][2]" + assert env.rail.get_full_transitions(18, 3) == 5633, "[18][3]" + assert env.rail.get_full_transitions(18, 4) == 1025, "[18][4]" + assert env.rail.get_full_transitions(18, 5) == 1025, "[18][5]" + assert env.rail.get_full_transitions(18, 6) == 1025, "[18][6]" + assert env.rail.get_full_transitions(18, 7) == 1025, "[18][7]" + assert env.rail.get_full_transitions(18, 8) == 1025, "[18][8]" + assert env.rail.get_full_transitions(18, 9) == 5633, "[18][9]" + assert env.rail.get_full_transitions(18, 10) == 1025, "[18][10]" + assert env.rail.get_full_transitions(18, 11) == 1025, "[18][11]" + assert env.rail.get_full_transitions(18, 12) == 1025, "[18][12]" + assert env.rail.get_full_transitions(18, 13) == 1025, "[18][13]" + assert env.rail.get_full_transitions(18, 14) == 1025, "[18][14]" + assert env.rail.get_full_transitions(18, 15) == 1025, "[18][15]" + assert env.rail.get_full_transitions(18, 16) == 17411, "[18][16]" + assert env.rail.get_full_transitions(18, 17) == 1025, "[18][17]" + assert env.rail.get_full_transitions(18, 18) == 1025, "[18][18]" + assert env.rail.get_full_transitions(18, 19) == 34864, "[18][19]" + assert env.rail.get_full_transitions(18, 20) == 0, "[18][20]" + assert env.rail.get_full_transitions(18, 21) == 0, "[18][21]" + assert env.rail.get_full_transitions(18, 22) == 0, "[18][22]" + assert env.rail.get_full_transitions(18, 23) == 0, "[18][23]" + assert env.rail.get_full_transitions(18, 24) == 0, "[18][24]" + assert env.rail.get_full_transitions(19, 0) == 0, "[19][0]" + assert env.rail.get_full_transitions(19, 1) == 0, "[19][1]" + assert env.rail.get_full_transitions(19, 2) == 0, "[19][2]" + assert env.rail.get_full_transitions(19, 3) == 72, "[19][3]" + assert env.rail.get_full_transitions(19, 4) == 1025, "[19][4]" + assert env.rail.get_full_transitions(19, 5) == 1025, "[19][5]" + assert env.rail.get_full_transitions(19, 6) == 1025, "[19][6]" + assert env.rail.get_full_transitions(19, 7) == 1025, "[19][7]" + assert env.rail.get_full_transitions(19, 8) == 1025, "[19][8]" + assert env.rail.get_full_transitions(19, 9) == 3089, "[19][9]" + assert env.rail.get_full_transitions(19, 10) == 1025, "[19][10]" + assert env.rail.get_full_transitions(19, 11) == 1025, "[19][11]" + assert env.rail.get_full_transitions(19, 12) == 1025, "[19][12]" + assert env.rail.get_full_transitions(19, 13) == 1025, "[19][13]" + assert env.rail.get_full_transitions(19, 14) == 1025, "[19][14]" + assert env.rail.get_full_transitions(19, 15) == 1025, "[19][15]" + assert env.rail.get_full_transitions(19, 16) == 3089, "[19][16]" + assert env.rail.get_full_transitions(19, 17) == 1025, "[19][17]" + assert env.rail.get_full_transitions(19, 18) == 1025, "[19][18]" + assert env.rail.get_full_transitions(19, 19) == 2064, "[19][19]" + assert env.rail.get_full_transitions(19, 20) == 0, "[19][20]" + assert env.rail.get_full_transitions(19, 21) == 0, "[19][21]" + assert env.rail.get_full_transitions(19, 22) == 0, "[19][22]" + assert env.rail.get_full_transitions(19, 23) == 0, "[19][23]" + assert env.rail.get_full_transitions(19, 24) == 0, "[19][24]" + assert env.rail.get_full_transitions(20, 0) == 0, "[20][0]" + assert env.rail.get_full_transitions(20, 1) == 0, "[20][1]" + assert env.rail.get_full_transitions(20, 2) == 0, "[20][2]" + assert env.rail.get_full_transitions(20, 3) == 0, "[20][3]" + assert env.rail.get_full_transitions(20, 4) == 0, "[20][4]" + assert env.rail.get_full_transitions(20, 5) == 0, "[20][5]" + assert env.rail.get_full_transitions(20, 6) == 0, "[20][6]" + assert env.rail.get_full_transitions(20, 7) == 0, "[20][7]" + assert env.rail.get_full_transitions(20, 8) == 0, "[20][8]" + assert env.rail.get_full_transitions(20, 9) == 0, "[20][9]" + assert env.rail.get_full_transitions(20, 10) == 0, "[20][10]" + assert env.rail.get_full_transitions(20, 11) == 0, "[20][11]" + assert env.rail.get_full_transitions(20, 12) == 0, "[20][12]" + assert env.rail.get_full_transitions(20, 13) == 0, "[20][13]" + assert env.rail.get_full_transitions(20, 14) == 0, "[20][14]" + assert env.rail.get_full_transitions(20, 15) == 0, "[20][15]" + assert env.rail.get_full_transitions(20, 16) == 0, "[20][16]" + assert env.rail.get_full_transitions(20, 17) == 0, "[20][17]" + assert env.rail.get_full_transitions(20, 18) == 0, "[20][18]" + assert env.rail.get_full_transitions(20, 19) == 0, "[20][19]" + assert env.rail.get_full_transitions(20, 20) == 0, "[20][20]" + assert env.rail.get_full_transitions(20, 21) == 0, "[20][21]" + assert env.rail.get_full_transitions(20, 22) == 0, "[20][22]" + assert env.rail.get_full_transitions(20, 23) == 0, "[20][23]" + assert env.rail.get_full_transitions(20, 24) == 0, "[20][24]" + assert env.rail.get_full_transitions(21, 0) == 0, "[21][0]" + assert env.rail.get_full_transitions(21, 1) == 0, "[21][1]" + assert env.rail.get_full_transitions(21, 2) == 0, "[21][2]" + assert env.rail.get_full_transitions(21, 3) == 0, "[21][3]" + assert env.rail.get_full_transitions(21, 4) == 0, "[21][4]" + assert env.rail.get_full_transitions(21, 5) == 0, "[21][5]" + assert env.rail.get_full_transitions(21, 6) == 0, "[21][6]" + assert env.rail.get_full_transitions(21, 7) == 0, "[21][7]" + assert env.rail.get_full_transitions(21, 8) == 0, "[21][8]" + assert env.rail.get_full_transitions(21, 9) == 0, "[21][9]" + assert env.rail.get_full_transitions(21, 10) == 0, "[21][10]" + assert env.rail.get_full_transitions(21, 11) == 0, "[21][11]" + assert env.rail.get_full_transitions(21, 12) == 0, "[21][12]" + assert env.rail.get_full_transitions(21, 13) == 0, "[21][13]" + assert env.rail.get_full_transitions(21, 14) == 0, "[21][14]" + assert env.rail.get_full_transitions(21, 15) == 0, "[21][15]" + assert env.rail.get_full_transitions(21, 16) == 0, "[21][16]" + assert env.rail.get_full_transitions(21, 17) == 0, "[21][17]" + assert env.rail.get_full_transitions(21, 18) == 0, "[21][18]" + assert env.rail.get_full_transitions(21, 19) == 0, "[21][19]" + assert env.rail.get_full_transitions(21, 20) == 0, "[21][20]" + assert env.rail.get_full_transitions(21, 21) == 0, "[21][21]" + assert env.rail.get_full_transitions(21, 22) == 0, "[21][22]" + assert env.rail.get_full_transitions(21, 23) == 0, "[21][23]" + assert env.rail.get_full_transitions(21, 24) == 0, "[21][24]" + assert env.rail.get_full_transitions(22, 0) == 0, "[22][0]" + assert env.rail.get_full_transitions(22, 1) == 0, "[22][1]" + assert env.rail.get_full_transitions(22, 2) == 0, "[22][2]" + assert env.rail.get_full_transitions(22, 3) == 0, "[22][3]" + assert env.rail.get_full_transitions(22, 4) == 0, "[22][4]" + assert env.rail.get_full_transitions(22, 5) == 0, "[22][5]" + assert env.rail.get_full_transitions(22, 6) == 0, "[22][6]" + assert env.rail.get_full_transitions(22, 7) == 0, "[22][7]" + assert env.rail.get_full_transitions(22, 8) == 0, "[22][8]" + assert env.rail.get_full_transitions(22, 9) == 0, "[22][9]" + assert env.rail.get_full_transitions(22, 10) == 0, "[22][10]" + assert env.rail.get_full_transitions(22, 11) == 0, "[22][11]" + assert env.rail.get_full_transitions(22, 12) == 0, "[22][12]" + assert env.rail.get_full_transitions(22, 13) == 0, "[22][13]" + assert env.rail.get_full_transitions(22, 14) == 0, "[22][14]" + assert env.rail.get_full_transitions(22, 15) == 0, "[22][15]" + assert env.rail.get_full_transitions(22, 16) == 0, "[22][16]" + assert env.rail.get_full_transitions(22, 17) == 0, "[22][17]" + assert env.rail.get_full_transitions(22, 18) == 0, "[22][18]" + assert env.rail.get_full_transitions(22, 19) == 0, "[22][19]" + assert env.rail.get_full_transitions(22, 20) == 0, "[22][20]" + assert env.rail.get_full_transitions(22, 21) == 0, "[22][21]" + assert env.rail.get_full_transitions(22, 22) == 0, "[22][22]" + assert env.rail.get_full_transitions(22, 23) == 0, "[22][23]" + assert env.rail.get_full_transitions(22, 24) == 0, "[22][24]" + assert env.rail.get_full_transitions(23, 0) == 0, "[23][0]" + assert env.rail.get_full_transitions(23, 1) == 0, "[23][1]" + assert env.rail.get_full_transitions(23, 2) == 0, "[23][2]" + assert env.rail.get_full_transitions(23, 3) == 0, "[23][3]" + assert env.rail.get_full_transitions(23, 4) == 0, "[23][4]" + assert env.rail.get_full_transitions(23, 5) == 0, "[23][5]" + assert env.rail.get_full_transitions(23, 6) == 0, "[23][6]" + assert env.rail.get_full_transitions(23, 7) == 0, "[23][7]" + assert env.rail.get_full_transitions(23, 8) == 0, "[23][8]" + assert env.rail.get_full_transitions(23, 9) == 0, "[23][9]" + assert env.rail.get_full_transitions(23, 10) == 0, "[23][10]" + assert env.rail.get_full_transitions(23, 11) == 0, "[23][11]" + assert env.rail.get_full_transitions(23, 12) == 0, "[23][12]" + assert env.rail.get_full_transitions(23, 13) == 0, "[23][13]" + assert env.rail.get_full_transitions(23, 14) == 0, "[23][14]" + assert env.rail.get_full_transitions(23, 15) == 0, "[23][15]" + assert env.rail.get_full_transitions(23, 16) == 0, "[23][16]" + assert env.rail.get_full_transitions(23, 17) == 0, "[23][17]" + assert env.rail.get_full_transitions(23, 18) == 0, "[23][18]" + assert env.rail.get_full_transitions(23, 19) == 0, "[23][19]" + assert env.rail.get_full_transitions(23, 20) == 0, "[23][20]" + assert env.rail.get_full_transitions(23, 21) == 0, "[23][21]" + assert env.rail.get_full_transitions(23, 22) == 0, "[23][22]" + assert env.rail.get_full_transitions(23, 23) == 0, "[23][23]" + assert env.rail.get_full_transitions(23, 24) == 0, "[23][24]" + assert env.rail.get_full_transitions(24, 0) == 0, "[24][0]" + assert env.rail.get_full_transitions(24, 1) == 0, "[24][1]" + assert env.rail.get_full_transitions(24, 2) == 0, "[24][2]" + assert env.rail.get_full_transitions(24, 3) == 0, "[24][3]" + assert env.rail.get_full_transitions(24, 4) == 0, "[24][4]" + assert env.rail.get_full_transitions(24, 5) == 0, "[24][5]" + assert env.rail.get_full_transitions(24, 6) == 0, "[24][6]" + assert env.rail.get_full_transitions(24, 7) == 0, "[24][7]" + assert env.rail.get_full_transitions(24, 8) == 0, "[24][8]" + assert env.rail.get_full_transitions(24, 9) == 0, "[24][9]" + assert env.rail.get_full_transitions(24, 10) == 0, "[24][10]" + assert env.rail.get_full_transitions(24, 11) == 0, "[24][11]" + assert env.rail.get_full_transitions(24, 12) == 0, "[24][12]" + assert env.rail.get_full_transitions(24, 13) == 0, "[24][13]" + assert env.rail.get_full_transitions(24, 14) == 0, "[24][14]" + assert env.rail.get_full_transitions(24, 15) == 0, "[24][15]" + assert env.rail.get_full_transitions(24, 16) == 0, "[24][16]" + assert env.rail.get_full_transitions(24, 17) == 0, "[24][17]" + assert env.rail.get_full_transitions(24, 18) == 0, "[24][18]" + assert env.rail.get_full_transitions(24, 19) == 0, "[24][19]" + assert env.rail.get_full_transitions(24, 20) == 0, "[24][20]" + assert env.rail.get_full_transitions(24, 21) == 0, "[24][21]" + assert env.rail.get_full_transitions(24, 22) == 0, "[24][22]" + assert env.rail.get_full_transitions(24, 23) == 0, "[24][23]" + assert env.rail.get_full_transitions(24, 24) == 0, "[24][24]" + assert env.rail.get_full_transitions(25, 0) == 0, "[25][0]" + assert env.rail.get_full_transitions(25, 1) == 0, "[25][1]" + assert env.rail.get_full_transitions(25, 2) == 0, "[25][2]" + assert env.rail.get_full_transitions(25, 3) == 0, "[25][3]" + assert env.rail.get_full_transitions(25, 4) == 0, "[25][4]" + assert env.rail.get_full_transitions(25, 5) == 0, "[25][5]" + assert env.rail.get_full_transitions(25, 6) == 0, "[25][6]" + assert env.rail.get_full_transitions(25, 7) == 0, "[25][7]" + assert env.rail.get_full_transitions(25, 8) == 0, "[25][8]" + assert env.rail.get_full_transitions(25, 9) == 0, "[25][9]" + assert env.rail.get_full_transitions(25, 10) == 0, "[25][10]" + assert env.rail.get_full_transitions(25, 11) == 0, "[25][11]" + assert env.rail.get_full_transitions(25, 12) == 0, "[25][12]" + assert env.rail.get_full_transitions(25, 13) == 0, "[25][13]" + assert env.rail.get_full_transitions(25, 14) == 0, "[25][14]" + assert env.rail.get_full_transitions(25, 15) == 0, "[25][15]" + assert env.rail.get_full_transitions(25, 16) == 0, "[25][16]" + assert env.rail.get_full_transitions(25, 17) == 0, "[25][17]" + assert env.rail.get_full_transitions(25, 18) == 0, "[25][18]" + assert env.rail.get_full_transitions(25, 19) == 0, "[25][19]" + assert env.rail.get_full_transitions(25, 20) == 0, "[25][20]" + assert env.rail.get_full_transitions(25, 21) == 0, "[25][21]" + assert env.rail.get_full_transitions(25, 22) == 0, "[25][22]" + assert env.rail.get_full_transitions(25, 23) == 0, "[25][23]" + assert env.rail.get_full_transitions(25, 24) == 0, "[25][24]" + assert env.rail.get_full_transitions(26, 0) == 0, "[26][0]" + assert env.rail.get_full_transitions(26, 1) == 0, "[26][1]" + assert env.rail.get_full_transitions(26, 2) == 0, "[26][2]" + assert env.rail.get_full_transitions(26, 3) == 0, "[26][3]" + assert env.rail.get_full_transitions(26, 4) == 0, "[26][4]" + assert env.rail.get_full_transitions(26, 5) == 0, "[26][5]" + assert env.rail.get_full_transitions(26, 6) == 0, "[26][6]" + assert env.rail.get_full_transitions(26, 7) == 0, "[26][7]" + assert env.rail.get_full_transitions(26, 8) == 0, "[26][8]" + assert env.rail.get_full_transitions(26, 9) == 0, "[26][9]" + assert env.rail.get_full_transitions(26, 10) == 0, "[26][10]" + assert env.rail.get_full_transitions(26, 11) == 0, "[26][11]" + assert env.rail.get_full_transitions(26, 12) == 0, "[26][12]" + assert env.rail.get_full_transitions(26, 13) == 0, "[26][13]" + assert env.rail.get_full_transitions(26, 14) == 0, "[26][14]" + assert env.rail.get_full_transitions(26, 15) == 0, "[26][15]" + assert env.rail.get_full_transitions(26, 16) == 0, "[26][16]" + assert env.rail.get_full_transitions(26, 17) == 0, "[26][17]" + assert env.rail.get_full_transitions(26, 18) == 0, "[26][18]" + assert env.rail.get_full_transitions(26, 19) == 0, "[26][19]" + assert env.rail.get_full_transitions(26, 20) == 0, "[26][20]" + assert env.rail.get_full_transitions(26, 21) == 0, "[26][21]" + assert env.rail.get_full_transitions(26, 22) == 0, "[26][22]" + assert env.rail.get_full_transitions(26, 23) == 0, "[26][23]" + assert env.rail.get_full_transitions(26, 24) == 0, "[26][24]" + assert env.rail.get_full_transitions(27, 0) == 0, "[27][0]" + assert env.rail.get_full_transitions(27, 1) == 0, "[27][1]" + assert env.rail.get_full_transitions(27, 2) == 0, "[27][2]" + assert env.rail.get_full_transitions(27, 3) == 0, "[27][3]" + assert env.rail.get_full_transitions(27, 4) == 0, "[27][4]" + assert env.rail.get_full_transitions(27, 5) == 0, "[27][5]" + assert env.rail.get_full_transitions(27, 6) == 0, "[27][6]" + assert env.rail.get_full_transitions(27, 7) == 0, "[27][7]" + assert env.rail.get_full_transitions(27, 8) == 0, "[27][8]" + assert env.rail.get_full_transitions(27, 9) == 0, "[27][9]" + assert env.rail.get_full_transitions(27, 10) == 0, "[27][10]" + assert env.rail.get_full_transitions(27, 11) == 0, "[27][11]" + assert env.rail.get_full_transitions(27, 12) == 0, "[27][12]" + assert env.rail.get_full_transitions(27, 13) == 0, "[27][13]" + assert env.rail.get_full_transitions(27, 14) == 0, "[27][14]" + assert env.rail.get_full_transitions(27, 15) == 0, "[27][15]" + assert env.rail.get_full_transitions(27, 16) == 0, "[27][16]" + assert env.rail.get_full_transitions(27, 17) == 0, "[27][17]" + assert env.rail.get_full_transitions(27, 18) == 0, "[27][18]" + assert env.rail.get_full_transitions(27, 19) == 0, "[27][19]" + assert env.rail.get_full_transitions(27, 20) == 0, "[27][20]" + assert env.rail.get_full_transitions(27, 21) == 0, "[27][21]" + assert env.rail.get_full_transitions(27, 22) == 0, "[27][22]" + assert env.rail.get_full_transitions(27, 23) == 0, "[27][23]" + assert env.rail.get_full_transitions(27, 24) == 0, "[27][24]" + assert env.rail.get_full_transitions(28, 0) == 0, "[28][0]" + assert env.rail.get_full_transitions(28, 1) == 0, "[28][1]" + assert env.rail.get_full_transitions(28, 2) == 0, "[28][2]" + assert env.rail.get_full_transitions(28, 3) == 0, "[28][3]" + assert env.rail.get_full_transitions(28, 4) == 0, "[28][4]" + assert env.rail.get_full_transitions(28, 5) == 0, "[28][5]" + assert env.rail.get_full_transitions(28, 6) == 0, "[28][6]" + assert env.rail.get_full_transitions(28, 7) == 0, "[28][7]" + assert env.rail.get_full_transitions(28, 8) == 0, "[28][8]" + assert env.rail.get_full_transitions(28, 9) == 0, "[28][9]" + assert env.rail.get_full_transitions(28, 10) == 0, "[28][10]" + assert env.rail.get_full_transitions(28, 11) == 0, "[28][11]" + assert env.rail.get_full_transitions(28, 12) == 0, "[28][12]" + assert env.rail.get_full_transitions(28, 13) == 0, "[28][13]" + assert env.rail.get_full_transitions(28, 14) == 0, "[28][14]" + assert env.rail.get_full_transitions(28, 15) == 0, "[28][15]" + assert env.rail.get_full_transitions(28, 16) == 0, "[28][16]" + assert env.rail.get_full_transitions(28, 17) == 0, "[28][17]" + assert env.rail.get_full_transitions(28, 18) == 0, "[28][18]" + assert env.rail.get_full_transitions(28, 19) == 0, "[28][19]" + assert env.rail.get_full_transitions(28, 20) == 0, "[28][20]" + assert env.rail.get_full_transitions(28, 21) == 0, "[28][21]" + assert env.rail.get_full_transitions(28, 22) == 0, "[28][22]" + assert env.rail.get_full_transitions(28, 23) == 0, "[28][23]" + assert env.rail.get_full_transitions(28, 24) == 0, "[28][24]" + assert env.rail.get_full_transitions(29, 0) == 0, "[29][0]" + assert env.rail.get_full_transitions(29, 1) == 0, "[29][1]" + assert env.rail.get_full_transitions(29, 2) == 0, "[29][2]" + assert env.rail.get_full_transitions(29, 3) == 0, "[29][3]" + assert env.rail.get_full_transitions(29, 4) == 0, "[29][4]" + assert env.rail.get_full_transitions(29, 5) == 0, "[29][5]" + assert env.rail.get_full_transitions(29, 6) == 0, "[29][6]" + assert env.rail.get_full_transitions(29, 7) == 0, "[29][7]" + assert env.rail.get_full_transitions(29, 8) == 0, "[29][8]" + assert env.rail.get_full_transitions(29, 9) == 0, "[29][9]" + assert env.rail.get_full_transitions(29, 10) == 0, "[29][10]" + assert env.rail.get_full_transitions(29, 11) == 0, "[29][11]" + assert env.rail.get_full_transitions(29, 12) == 0, "[29][12]" + assert env.rail.get_full_transitions(29, 13) == 0, "[29][13]" + assert env.rail.get_full_transitions(29, 14) == 0, "[29][14]" + assert env.rail.get_full_transitions(29, 15) == 0, "[29][15]" + assert env.rail.get_full_transitions(29, 16) == 0, "[29][16]" + assert env.rail.get_full_transitions(29, 17) == 0, "[29][17]" + assert env.rail.get_full_transitions(29, 18) == 0, "[29][18]" + assert env.rail.get_full_transitions(29, 19) == 0, "[29][19]" + assert env.rail.get_full_transitions(29, 20) == 0, "[29][20]" + assert env.rail.get_full_transitions(29, 21) == 0, "[29][21]" + assert env.rail.get_full_transitions(29, 22) == 0, "[29][22]" + assert env.rail.get_full_transitions(29, 23) == 0, "[29][23]" + assert env.rail.get_full_transitions(29, 24) == 0, "[29][24]" def test_rail_env_action_required_info(): np.random.seed(0) diff --git a/tests/test_flatland_malfunction.py b/tests/test_flatland_malfunction.py index ace603422006d7f6229e854e24b6f244b7fe183c..8291cb2ca0c3e02533762d4590a6f8b5e870fd29 100644 --- a/tests/test_flatland_malfunction.py +++ b/tests/test_flatland_malfunction.py @@ -9,8 +9,9 @@ from flatland.core.grid.grid4 import Grid4TransitionsEnum from flatland.core.grid.grid4_utils import get_new_position from flatland.envs.agent_utils import RailAgentStatus from flatland.envs.rail_env import RailEnv, RailEnvActions -from flatland.envs.rail_generators import complex_rail_generator, sparse_rail_generator -from flatland.envs.schedule_generators import complex_schedule_generator, sparse_schedule_generator +from flatland.envs.rail_generators import rail_from_grid_transition_map +from flatland.envs.schedule_generators import random_schedule_generator +from flatland.utils.simple_rail import make_simple_rail2 class SingleAgentNavigationObs(ObservationBuilder): @@ -69,16 +70,27 @@ def test_malfunction_process(): 'malfunction_rate': 1000, 'min_duration': 3, 'max_duration': 3} - np.random.seed(5) + random.seed(0) + np.random.seed(0) - env = RailEnv(width=20, - height=20, - rail_generator=complex_rail_generator(nr_start_goal=10, nr_extra=1, min_dist=5, max_dist=99999, - seed=0), - schedule_generator=complex_schedule_generator(), - number_of_agents=2, - obs_builder_object=SingleAgentNavigationObs(), - stochastic_data=stochastic_data) + stochastic_data = {'prop_malfunction': 1., # Percentage of defective agents + 'malfunction_rate': 70, # Rate of malfunction occurence + 'min_duration': 2, # Minimal duration of malfunction + 'max_duration': 5 # Max duration of malfunction + } + + rail, rail_map = make_simple_rail2() + + env = RailEnv(width=25, + height=30, + rail_generator=rail_from_grid_transition_map(rail), + schedule_generator=random_schedule_generator(), + number_of_agents=1, + stochastic_data=stochastic_data, # Malfunction data generator + obs_builder_object=SingleAgentNavigationObs() + ) + # reset to initialize agents_static + env.reset() obs = env.reset(False, False, True) @@ -117,7 +129,7 @@ def test_malfunction_process(): total_down_time += env.agents[0].malfunction_data['malfunction'] # Check that the appropriate number of malfunctions is achieved - assert env.agents[0].malfunction_data['nr_malfunctions'] == 21, "Actual {}".format( + assert env.agents[0].malfunction_data['nr_malfunctions'] == 11, "Actual {}".format( env.agents[0].malfunction_data['nr_malfunctions']) # Check that 20 stops where performed @@ -135,16 +147,26 @@ def test_malfunction_process_statistically(): 'min_duration': 3, 'max_duration': 3} - env = RailEnv(width=20, - height=20, - rail_generator=complex_rail_generator(nr_start_goal=10, nr_extra=1, min_dist=5, max_dist=99999, - seed=0), - schedule_generator=complex_schedule_generator(), - number_of_agents=2, - obs_builder_object=SingleAgentNavigationObs(), - stochastic_data=stochastic_data) - np.random.seed(5) random.seed(0) + np.random.seed(0) + + stochastic_data = {'prop_malfunction': 1., # Percentage of defective agents + 'malfunction_rate': 70, # Rate of malfunction occurence + 'min_duration': 2, # Minimal duration of malfunction + 'max_duration': 5 # Max duration of malfunction + } + + rail, rail_map = make_simple_rail2() + + env = RailEnv(width=25, + height=30, + rail_generator=rail_from_grid_transition_map(rail), + schedule_generator=random_schedule_generator(), + number_of_agents=1, + stochastic_data=stochastic_data, # Malfunction data generator + obs_builder_object=SingleAgentNavigationObs() + ) + # reset to initialize agents_static env.reset(False, False, True) nb_malfunction = 0 for step in range(100): @@ -158,38 +180,39 @@ def test_malfunction_process_statistically(): env.step(action_dict) # check that generation of malfunctions works as expected - assert nb_malfunction == 128, "nb_malfunction={}".format(nb_malfunction) + assert nb_malfunction == 3, "nb_malfunction={}".format(nb_malfunction) def test_initial_malfunction(): + + random.seed(0) + np.random.seed(0) + stochastic_data = {'prop_malfunction': 1., # Percentage of defective agents 'malfunction_rate': 70, # Rate of malfunction occurence 'min_duration': 2, # Minimal duration of malfunction 'max_duration': 5 # Max duration of malfunction } - speed_ration_map = {1.: 1., # Fast passenger train - 1. / 2.: 0., # Fast freight train - 1. / 3.: 0., # Slow commuter train - 1. / 4.: 0.} # Slow freight train - np.random.seed(5) - random.seed(0) + rail, rail_map = make_simple_rail2() + env = RailEnv(width=25, height=30, - rail_generator=sparse_rail_generator(max_num_cities=5, - max_rails_between_cities=3, - seed=215545, - grid_mode=True - ), - schedule_generator=sparse_schedule_generator(speed_ration_map), + rail_generator=rail_from_grid_transition_map(rail), + schedule_generator=random_schedule_generator(), number_of_agents=1, stochastic_data=stochastic_data, # Malfunction data generator + obs_builder_object=SingleAgentNavigationObs() ) + + # reset to initialize agents_static + env.reset(False, False, True) + set_penalties_for_replay(env) replay_config = ReplayConfig( replay=[ Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, set_malfunction=3, @@ -197,7 +220,7 @@ def test_initial_malfunction(): reward=env.step_penalty # full step penalty when malfunctioning ), Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=2, @@ -206,7 +229,7 @@ def test_initial_malfunction(): # malfunction stops in the next step and we're still at the beginning of the cell # --> if we take action MOVE_FORWARD, agent should restart and move to the next cell Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=1, @@ -214,15 +237,15 @@ def test_initial_malfunction(): # malfunctioning ends: starting and running at speed 1.0 ), Replay( - position=(28, 6), + position=(3, 3), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=0, reward=env.step_penalty * 1.0 # running at speed 1.0 ), Replay( - position=(27, 6), - direction=Grid4TransitionsEnum.NORTH, + position=(3, 4), + direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=0, reward=env.step_penalty * 1.0 # running at speed 1.0 @@ -230,37 +253,36 @@ def test_initial_malfunction(): ], speed=env.agents[0].speed_data['speed'], target=env.agents[0].target, - initial_position=(28, 5), + initial_position=(3, 2), initial_direction=Grid4TransitionsEnum.EAST, ) - sparse_generator_stable = False - if sparse_generator_stable: - run_replay_config(env, [replay_config]) + run_replay_config(env, [replay_config]) def test_initial_malfunction_stop_moving(): + random.seed(0) + np.random.seed(0) + stochastic_data = {'prop_malfunction': 1., # Percentage of defective agents 'malfunction_rate': 70, # Rate of malfunction occurence 'min_duration': 2, # Minimal duration of malfunction 'max_duration': 5 # Max duration of malfunction } - speed_ration_map = {1.: 1., # Fast passenger train - 1. / 2.: 0., # Fast freight train - 1. / 3.: 0., # Slow commuter train - 1. / 4.: 0.} # Slow freight train + rail, rail_map = make_simple_rail2() env = RailEnv(width=25, height=30, - rail_generator=sparse_rail_generator(max_num_cities=5, - max_rails_between_cities=3, - seed=215545, - grid_mode=True - ), - schedule_generator=sparse_schedule_generator(speed_ration_map), + rail_generator=rail_from_grid_transition_map(rail), + schedule_generator=random_schedule_generator(), number_of_agents=1, stochastic_data=stochastic_data, # Malfunction data generator + obs_builder_object=SingleAgentNavigationObs() ) + # reset to initialize agents_static + + print(env.agents[0].initial_position, env.agents[0].direction, env.agents[0].position, env.agents[0].status) + set_penalties_for_replay(env) replay_config = ReplayConfig( replay=[ @@ -274,7 +296,7 @@ def test_initial_malfunction_stop_moving(): status=RailAgentStatus.READY_TO_DEPART ), Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.DO_NOTHING, malfunction=2, @@ -285,7 +307,7 @@ def test_initial_malfunction_stop_moving(): # --> if we take action STOP_MOVING, agent should restart without moving # Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.STOP_MOVING, malfunction=1, @@ -294,7 +316,7 @@ def test_initial_malfunction_stop_moving(): ), # we have stopped and do nothing --> should stand still Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.DO_NOTHING, malfunction=0, @@ -303,7 +325,7 @@ def test_initial_malfunction_stop_moving(): ), # we start to move forward --> should go to next cell now Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=0, @@ -311,7 +333,7 @@ def test_initial_malfunction_stop_moving(): status=RailAgentStatus.ACTIVE ), Replay( - position=(28, 6), + position=(3, 3), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=0, @@ -321,12 +343,11 @@ def test_initial_malfunction_stop_moving(): ], speed=env.agents[0].speed_data['speed'], target=env.agents[0].target, - initial_position=(28, 5), + initial_position=(3, 2), initial_direction=Grid4TransitionsEnum.EAST, ) - sparse_generator_stable = False - if sparse_generator_stable: - run_replay_config(env, [replay_config], activate_agents=False) + + run_replay_config(env, [replay_config], activate_agents=False) def test_initial_malfunction_do_nothing(): @@ -339,22 +360,18 @@ def test_initial_malfunction_do_nothing(): 'max_duration': 5 # Max duration of malfunction } - speed_ration_map = {1.: 1., # Fast passenger train - 1. / 2.: 0., # Fast freight train - 1. / 3.: 0., # Slow commuter train - 1. / 4.: 0.} # Slow freight train + rail, rail_map = make_simple_rail2() + env = RailEnv(width=25, height=30, - rail_generator=sparse_rail_generator(max_num_cities=5, - max_rails_between_cities=3, - seed=215545, - grid_mode=True - ), - schedule_generator=sparse_schedule_generator(speed_ration_map), + rail_generator=rail_from_grid_transition_map(rail), + schedule_generator=random_schedule_generator(), number_of_agents=1, stochastic_data=stochastic_data, # Malfunction data generator ) + # reset to initialize agents_static + env.reset() set_penalties_for_replay(env) replay_config = ReplayConfig( replay=[ @@ -368,7 +385,7 @@ def test_initial_malfunction_do_nothing(): status=RailAgentStatus.READY_TO_DEPART ), Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.DO_NOTHING, malfunction=2, @@ -379,7 +396,7 @@ def test_initial_malfunction_do_nothing(): # --> if we take action DO_NOTHING, agent should restart without moving # Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.DO_NOTHING, malfunction=1, @@ -388,24 +405,24 @@ def test_initial_malfunction_do_nothing(): ), # we haven't started moving yet --> stay here Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.DO_NOTHING, malfunction=0, reward=env.step_penalty, # full step penalty while stopped status=RailAgentStatus.ACTIVE ), - # we start to move forward --> should go to next cell now + Replay( - position=(28, 5), + position=(3, 2), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=0, reward=env.start_penalty + env.step_penalty * 1.0, # start penalty + step penalty for speed 1.0 status=RailAgentStatus.ACTIVE - ), + ), # we start to move forward --> should go to next cell now Replay( - position=(28, 6), + position=(3, 3), direction=Grid4TransitionsEnum.EAST, action=RailEnvActions.MOVE_FORWARD, malfunction=0, @@ -415,12 +432,10 @@ def test_initial_malfunction_do_nothing(): ], speed=env.agents[0].speed_data['speed'], target=env.agents[0].target, - initial_position=(28, 5), + initial_position=(3, 2), initial_direction=Grid4TransitionsEnum.EAST, ) - sparse_generator_stable = False - if sparse_generator_stable: - run_replay_config(env, [replay_config], activate_agents=False) + run_replay_config(env, [replay_config], activate_agents=False) def test_initial_nextmalfunction_not_below_zero(): @@ -428,27 +443,23 @@ def test_initial_nextmalfunction_not_below_zero(): np.random.seed(0) stochastic_data = {'prop_malfunction': 1., # Percentage of defective agents - 'malfunction_rate': 0.5, # Rate of malfunction occurence - 'min_duration': 5, # Minimal duration of malfunction + 'malfunction_rate': 70, # Rate of malfunction occurence + 'min_duration': 2, # Minimal duration of malfunction 'max_duration': 5 # Max duration of malfunction } - speed_ration_map = {1.: 1., # Fast passenger train - 1. / 2.: 0., # Fast freight train - 1. / 3.: 0., # Slow commuter train - 1. / 4.: 0.} # Slow freight train + rail, rail_map = make_simple_rail2() env = RailEnv(width=25, height=30, - rail_generator=sparse_rail_generator(max_num_cities=5, - max_rails_between_cities=3, - seed=215545, - grid_mode=True - ), - schedule_generator=sparse_schedule_generator(speed_ration_map), + rail_generator=rail_from_grid_transition_map(rail), + schedule_generator=random_schedule_generator(), number_of_agents=1, stochastic_data=stochastic_data, # Malfunction data generator + obs_builder_object=SingleAgentNavigationObs() ) + # reset to initialize agents_static + env.reset() agent = env.agents[0] env.step({}) # was next_malfunction was -1 befor the bugfix https://gitlab.aicrowd.com/flatland/flatland/issues/186