test_create_edge.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import unittest
  2. from modelverse_state.main import ModelverseState
  3. from modelverse_state import status
  4. class TestCreateEdge(unittest.TestCase):
  5. def setUp(self):
  6. self.mvs = ModelverseState()
  7. def test_create_edge_invalid_source(self):
  8. a = -1
  9. b, r = self.mvs.create_node()
  10. self.assertEquals(r, status.SUCCESS)
  11. edge, r = self.mvs.create_edge(a, b)
  12. self.assertEquals(edge, None)
  13. self.assertEquals(r, status.FAIL_CE_SOURCE)
  14. def test_create_edge_invalid_target(self):
  15. b = -1
  16. a, r = self.mvs.create_node()
  17. self.assertEquals(r, status.SUCCESS)
  18. edge, r = self.mvs.create_edge(a, b)
  19. self.assertEquals(edge, None)
  20. self.assertEquals(r, status.FAIL_CE_TARGET)
  21. def test_create_edge_invalid_both(self):
  22. a = -1
  23. b = -1
  24. edge, r = self.mvs.create_edge(a, b)
  25. self.assertEquals(edge, None)
  26. self.assertEquals(r, status.FAIL_CE_SOURCE)
  27. def test_create_edge_node_to_node(self):
  28. a, r = self.mvs.create_node()
  29. self.assertEquals(r, status.SUCCESS)
  30. b, r = self.mvs.create_node()
  31. self.assertEquals(r, status.SUCCESS)
  32. edge, r = self.mvs.create_edge(a, b)
  33. self.assertGreater(edge,a)
  34. self.assertGreater(edge,b)
  35. self.assertEquals(r, status.SUCCESS)
  36. def test_create_edge_multiple(self):
  37. a, r = self.mvs.create_node()
  38. self.assertEquals(r, status.SUCCESS)
  39. b, r = self.mvs.create_node()
  40. self.assertEquals(r, status.SUCCESS)
  41. edge1, r = self.mvs.create_edge(a, b)
  42. self.assertGreater(edge1,a)
  43. self.assertGreater(edge1,b)
  44. self.assertEquals(r, status.SUCCESS)
  45. edge2, r = self.mvs.create_edge(a, b)
  46. self.assertGreater(edge2,a)
  47. self.assertGreater(edge2,b)
  48. self.assertEquals(r, status.SUCCESS)
  49. self.assertNotEquals(edge1, edge2)
  50. def test_create_edge_many(self):
  51. v = set()
  52. for i in range(1000):
  53. a, r = self.mvs.create_node()
  54. self.assertEquals(r, status.SUCCESS)
  55. b, r = self.mvs.create_node()
  56. self.assertEquals(r, status.SUCCESS)
  57. edge, r = self.mvs.create_edge(a, b)
  58. self.assertGreater(edge,a)
  59. self.assertGreater(edge,b)
  60. self.assertEquals(r, status.SUCCESS)
  61. v.add(edge)
  62. self.assertEquals(len(v), 1000)
  63. def test_create_edge_edge_to_node(self):
  64. a, r = self.mvs.create_node()
  65. self.assertEquals(r, status.SUCCESS)
  66. b, r = self.mvs.create_node()
  67. self.assertEquals(r, status.SUCCESS)
  68. edge1, r = self.mvs.create_edge(a, b)
  69. self.assertGreater(edge1,a)
  70. self.assertGreater(edge1,b)
  71. self.assertEquals(r, status.SUCCESS)
  72. edge2, r = self.mvs.create_edge(edge1, b)
  73. self.assertGreater(edge2,edge1)
  74. self.assertGreater(edge2,b)
  75. self.assertEquals(r, status.SUCCESS)
  76. self.assertNotEquals(edge1, edge2)
  77. def test_create_edge_node_to_edge(self):
  78. a, r = self.mvs.create_node()
  79. self.assertEquals(r, status.SUCCESS)
  80. b, r = self.mvs.create_node()
  81. self.assertEquals(r, status.SUCCESS)
  82. edge1, r = self.mvs.create_edge(a, b)
  83. self.assertGreater(edge1,a)
  84. self.assertGreater(edge1,b)
  85. self.assertEquals(r, status.SUCCESS)
  86. edge2, r = self.mvs.create_edge(a, edge1)
  87. self.assertGreater(edge2,a)
  88. self.assertGreater(edge2,edge1)
  89. self.assertEquals(r, status.SUCCESS)
  90. self.assertNotEquals(edge1, edge2)
  91. def test_create_edge_edge_to_edge(self):
  92. a, r = self.mvs.create_node()
  93. self.assertEquals(r, status.SUCCESS)
  94. b, r = self.mvs.create_node()
  95. self.assertEquals(r, status.SUCCESS)
  96. edge1, r = self.mvs.create_edge(a, b)
  97. self.assertGreater(edge1,a)
  98. self.assertGreater(edge1,b)
  99. self.assertEquals(r, status.SUCCESS)
  100. edge2, r = self.mvs.create_edge(a, b)
  101. self.assertGreater(edge2,a)
  102. self.assertGreater(edge2,b)
  103. self.assertEquals(r, status.SUCCESS)
  104. self.assertNotEquals(edge1, edge2)
  105. edge3, r = self.mvs.create_edge(edge1, edge2)
  106. self.assertGreater(edge3,edge1)
  107. self.assertGreater(edge3,edge2)
  108. self.assertEquals(r, status.SUCCESS)
  109. def test_create_edge_loop_node(self):
  110. a, r = self.mvs.create_node()
  111. self.assertEquals(r, status.SUCCESS)
  112. edge, r = self.mvs.create_edge(a, a)
  113. self.assertGreater(edge,a)
  114. self.assertEquals(r, status.SUCCESS)
  115. def test_create_edge_loop_edge(self):
  116. a, r = self.mvs.create_node()
  117. self.assertEquals(r, status.SUCCESS)
  118. edge1, r = self.mvs.create_edge(a, a)
  119. self.assertGreater(edge1,a)
  120. self.assertEquals(r, status.SUCCESS)
  121. edge2, r = self.mvs.create_edge(edge1, edge1)
  122. self.assertGreater(edge2,a)
  123. self.assertEquals(r, status.SUCCESS)