test_delete_node.py 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. import unittest
  2. from modelverse_state.main import ModelverseState
  3. class TestDeleteNode(unittest.TestCase):
  4. def setUp(self):
  5. self.mvs = ModelverseState()
  6. def test_delete_node_no_exists(self):
  7. n = self.mvs.delete_node(-1)
  8. assert n == None
  9. def test_delete_node_no_value(self):
  10. a = self.mvs.create_node()
  11. assert a != None
  12. n = self.mvs.delete_node(a)
  13. assert n == None
  14. def test_delete_node_value(self):
  15. a = self.mvs.create_nodevalue(1)
  16. assert a != None
  17. d = self.mvs.read_value(a)
  18. assert d == 1
  19. n = self.mvs.delete_node(a)
  20. assert n == None
  21. d = self.mvs.read_value(a)
  22. assert d == None
  23. self.assertEquals(d, None)
  24. def test_delete_node_edge(self):
  25. a = self.mvs.create_node()
  26. b = self.mvs.create_node()
  27. c = self.mvs.create_edge(a, b)
  28. assert a != None
  29. assert b != None
  30. assert c != None
  31. n = self.mvs.delete_node(c)
  32. assert n == None
  33. def test_delete_node_remove_edge_outgoing(self):
  34. a = self.mvs.create_nodevalue(1)
  35. b = self.mvs.create_node()
  36. c = self.mvs.create_edge(a, b)
  37. assert a != None
  38. assert b != None
  39. assert c != None
  40. n = self.mvs.delete_node(a)
  41. assert n == None
  42. d = self.mvs.read_value(a)
  43. assert d == None
  44. s, t = self.mvs.read_edge(c)
  45. assert s == None
  46. assert t == None
  47. d = self.mvs.read_outgoing(b)
  48. assert d != None
  49. assert set(d) == set([])
  50. def test_delete_node_remove_edge_incoming(self):
  51. a = self.mvs.create_nodevalue(1)
  52. b = self.mvs.create_node()
  53. c = self.mvs.create_edge(b, a)
  54. assert a != None
  55. assert b != None
  56. assert c != None
  57. n = self.mvs.delete_node(a)
  58. assert n == None
  59. d = self.mvs.read_value(a)
  60. assert d == None
  61. s, t = self.mvs.read_edge(c)
  62. assert s == None
  63. assert t == None
  64. d = self.mvs.read_outgoing(b)
  65. assert d != None
  66. assert set(d) == set([])
  67. def test_delete_node_remove_edge_both(self):
  68. a = self.mvs.create_nodevalue(1)
  69. b = self.mvs.create_node()
  70. c = self.mvs.create_edge(a, b)
  71. e = self.mvs.create_node()
  72. f = self.mvs.create_edge(e, a)
  73. assert a != None
  74. assert b != None
  75. assert c != None
  76. assert e != None
  77. assert f != None
  78. n = self.mvs.delete_node(a)
  79. assert n == None
  80. d = self.mvs.read_value(a)
  81. assert d == None
  82. s, t = self.mvs.read_edge(c)
  83. assert s == None
  84. assert t == None
  85. d = self.mvs.read_incoming(b)
  86. assert d != None
  87. assert set(d) == set([])
  88. s, t = self.mvs.read_edge(f)
  89. assert s == None
  90. assert t == None
  91. d = self.mvs.read_outgoing(e)
  92. assert d != None
  93. assert set(d) == set([])
  94. def test_delete_node_remove_edge_recursive(self):
  95. a = self.mvs.create_nodevalue(1)
  96. b = self.mvs.create_node()
  97. c = self.mvs.create_edge(a, b)
  98. d = self.mvs.create_edge(c, b)
  99. assert a != None
  100. assert b != None
  101. assert c != None
  102. assert d != None
  103. n = self.mvs.delete_node(a)
  104. assert n == None
  105. d = self.mvs.read_value(a)
  106. assert d == None
  107. s, t = self.mvs.read_edge(c)
  108. assert s == None
  109. assert t == None
  110. s, t = self.mvs.read_edge(d)
  111. assert s == None
  112. assert t == None
  113. d = self.mvs.read_outgoing(b)
  114. assert d != None
  115. assert set(d) == set([])
  116. def test_delete_node_remove_edge_recursive_deep(self):
  117. a = self.mvs.create_node()
  118. b = self.mvs.create_node()
  119. c = self.mvs.create_node()
  120. d = self.mvs.create_edge(a, b)
  121. e = self.mvs.create_edge(d, c)
  122. f = self.mvs.create_node()
  123. g = self.mvs.create_edge(f, e)
  124. h = self.mvs.create_edge(b, c)
  125. assert a != None
  126. assert b != None
  127. assert c != None
  128. assert d != None
  129. assert e != None
  130. assert f != None
  131. assert g != None
  132. assert h != None
  133. n = self.mvs.delete_node(a)
  134. assert n == None
  135. l = self.mvs.read_outgoing(a)
  136. assert l == None
  137. l = self.mvs.read_incoming(a)
  138. assert l == None
  139. l = self.mvs.read_outgoing(b)
  140. assert l != None
  141. assert set(l) == set([h])
  142. l = self.mvs.read_incoming(b)
  143. assert l != None
  144. assert set(l) == set([])
  145. l = self.mvs.read_outgoing(c)
  146. assert l != None
  147. assert set(l) == set([])
  148. l = self.mvs.read_incoming(c)
  149. assert l != None
  150. assert set(l) == set([h])
  151. s, t = self.mvs.read_edge(d)
  152. assert s == None
  153. assert t == None
  154. s, t = self.mvs.read_edge(e)
  155. assert s == None
  156. assert t == None
  157. s, t = self.mvs.read_edge(g)
  158. assert s == None
  159. assert t == None
  160. l = self.mvs.read_outgoing(f)
  161. assert l != None
  162. assert set(l) == set([])
  163. l = self.mvs.read_incoming(f)
  164. assert l != None
  165. assert set(l) == set([])
  166. s, t = self.mvs.read_edge(h)
  167. assert s == b
  168. assert t == c