test_delete_edge.py 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. import unittest
  2. from modelverse_state.main import ModelverseState
  3. class TestDeleteEdge(unittest.TestCase):
  4. def setUp(self):
  5. self.mvs = ModelverseState()
  6. def test_delete_edge_no_exists(self):
  7. n = self.mvs.delete_edge(1)
  8. assert n == None
  9. def test_delete_edge_node(self):
  10. a = self.mvs.create_node()
  11. assert a != None
  12. n = self.mvs.delete_edge(a)
  13. assert n == None
  14. def test_delete_edge_nodevalue(self):
  15. a = self.mvs.create_nodevalue(1)
  16. assert a != None
  17. n = self.mvs.delete_edge(a)
  18. assert n == None
  19. def test_delete_edge_normal(self):
  20. a = self.mvs.create_nodevalue(1)
  21. b = self.mvs.create_node()
  22. c = self.mvs.create_edge(a, b)
  23. assert a != None
  24. assert b != None
  25. assert c != None
  26. n = self.mvs.delete_edge(c)
  27. assert n == None
  28. l = self.mvs.read_outgoing(a)
  29. assert l != None
  30. assert set(l) == set([])
  31. l = self.mvs.read_incoming(a)
  32. assert l != None
  33. assert set(l) == set([])
  34. l = self.mvs.read_outgoing(b)
  35. assert l != None
  36. assert set(l) == set([])
  37. l = self.mvs.read_incoming(b)
  38. assert l != None
  39. assert set(l) == set([])
  40. def test_delete_edge_remove_recursive(self):
  41. a = self.mvs.create_nodevalue(1)
  42. b = self.mvs.create_node()
  43. c = self.mvs.create_edge(a, b)
  44. d = self.mvs.create_edge(c, b)
  45. assert a != None
  46. assert b != None
  47. assert c != None
  48. assert d != None
  49. n = self.mvs.delete_edge(c)
  50. assert n == None
  51. l = self.mvs.read_value(a)
  52. assert l == 1
  53. l = self.mvs.read_outgoing(a)
  54. assert l != None
  55. assert set(l) == set([])
  56. l = self.mvs.read_incoming(a)
  57. assert l != None
  58. assert set(l) == set([])
  59. s, t = self.mvs.read_edge(c)
  60. assert s == None
  61. assert t == None
  62. s, t = self.mvs.read_edge(d)
  63. assert s == None
  64. assert t == None
  65. l = self.mvs.read_outgoing(b)
  66. assert l != None
  67. assert set(l) == set([])
  68. def test_delete_edge_remove_edge_recursive_deep(self):
  69. a = self.mvs.create_node()
  70. b = self.mvs.create_node()
  71. c = self.mvs.create_node()
  72. d = self.mvs.create_edge(a, b)
  73. e = self.mvs.create_edge(d, c)
  74. f = self.mvs.create_node()
  75. g = self.mvs.create_edge(f, e)
  76. h = self.mvs.create_edge(b, c)
  77. assert a != None
  78. assert b != None
  79. assert c != None
  80. assert d != None
  81. assert e != None
  82. assert f != None
  83. assert g != None
  84. assert h != None
  85. n = self.mvs.delete_edge(d)
  86. assert n == None
  87. l = self.mvs.read_outgoing(a)
  88. assert l != None
  89. assert set(l) == set([])
  90. l = self.mvs.read_incoming(a)
  91. assert l != None
  92. assert set(l) == set([])
  93. l = self.mvs.read_outgoing(b)
  94. assert l != None
  95. assert set(l) == set([h])
  96. l = self.mvs.read_incoming(b)
  97. assert l != None
  98. assert set(l) == set([])
  99. l = self.mvs.read_outgoing(c)
  100. assert l != None
  101. assert set(l) == set([])
  102. l = self.mvs.read_incoming(c)
  103. assert l != None
  104. assert set(l) == set([h])
  105. s, t = self.mvs.read_edge(d)
  106. assert s == None
  107. assert t == None
  108. s, t = self.mvs.read_edge(e)
  109. assert s == None
  110. assert t == None
  111. s, t = self.mvs.read_edge(g)
  112. assert s == None
  113. assert t == None
  114. l = self.mvs.read_outgoing(f)
  115. assert l != None
  116. assert set(l) == set([])
  117. l = self.mvs.read_incoming(f)
  118. assert l != None
  119. assert set(l) == set([])
  120. s, t = self.mvs.read_edge(h)
  121. assert s == b
  122. assert t == c
  123. def test_delete_edge_remove_edge_recursive_steps(self):
  124. a = self.mvs.create_node()
  125. b = self.mvs.create_node()
  126. c = self.mvs.create_node()
  127. d = self.mvs.create_edge(a, b)
  128. e = self.mvs.create_edge(d, c)
  129. f = self.mvs.create_node()
  130. g = self.mvs.create_edge(f, e)
  131. h = self.mvs.create_edge(b, c)
  132. assert a != None
  133. assert b != None
  134. assert c != None
  135. assert d != None
  136. assert e != None
  137. assert f != None
  138. assert g != None
  139. assert h != None
  140. n = self.mvs.delete_edge(g)
  141. assert n == None
  142. l = self.mvs.read_outgoing(a)
  143. assert l != None
  144. assert set(l) == set([d])
  145. l = self.mvs.read_incoming(a)
  146. assert l != None
  147. assert set(l) == set([])
  148. l = self.mvs.read_outgoing(b)
  149. assert l != None
  150. assert set(l) == set([h])
  151. l = self.mvs.read_incoming(b)
  152. assert l != None
  153. assert set(l) == set([d])
  154. l = self.mvs.read_outgoing(c)
  155. assert l != None
  156. assert set(l) == set([])
  157. l = self.mvs.read_incoming(c)
  158. assert l != None
  159. assert set(l) == set([h, e])
  160. s, t = self.mvs.read_edge(d)
  161. assert s == a
  162. assert t == b
  163. l = self.mvs.read_outgoing(d)
  164. assert l != None
  165. assert set(l) == set([e])
  166. l = self.mvs.read_incoming(d)
  167. assert l != None
  168. assert set(l) == set([])
  169. s, t = self.mvs.read_edge(e)
  170. assert s == d
  171. assert t == c
  172. l = self.mvs.read_outgoing(e)
  173. assert l != None
  174. assert set(l) == set([])
  175. l = self.mvs.read_incoming(e)
  176. assert l != None
  177. assert set(l) == set([])
  178. s, t = self.mvs.read_edge(g)
  179. assert s == None
  180. assert t == None
  181. l = self.mvs.read_outgoing(g)
  182. assert l == None
  183. l = self.mvs.read_incoming(g)
  184. assert l == None
  185. l = self.mvs.read_outgoing(f)
  186. assert l != None
  187. assert set(l) == set([])
  188. l = self.mvs.read_incoming(f)
  189. assert l != None
  190. assert set(l) == set([])
  191. s, t = self.mvs.read_edge(h)
  192. assert s == b
  193. assert t == c
  194. n = self.mvs.delete_edge(e)
  195. assert n == None
  196. l = self.mvs.read_outgoing(a)
  197. assert l != None
  198. assert set(l) == set([d])
  199. l = self.mvs.read_incoming(a)
  200. assert l != None
  201. assert set(l) == set([])
  202. l = self.mvs.read_outgoing(b)
  203. assert l != None
  204. assert set(l) == set([h])
  205. l = self.mvs.read_incoming(b)
  206. assert l != None
  207. assert set(l) == set([d])
  208. l = self.mvs.read_outgoing(c)
  209. assert l != None
  210. assert set(l) == set([])
  211. l = self.mvs.read_incoming(c)
  212. assert l != None
  213. assert set(l) == set([h])
  214. s, t = self.mvs.read_edge(d)
  215. assert s == a
  216. assert t == b
  217. l = self.mvs.read_outgoing(d)
  218. assert l != None
  219. assert set(l) == set([])
  220. l = self.mvs.read_incoming(d)
  221. assert l != None
  222. assert set(l) == set([])
  223. s, t = self.mvs.read_edge(e)
  224. assert s == None
  225. assert t == None
  226. l = self.mvs.read_outgoing(e)
  227. assert l == None
  228. l = self.mvs.read_incoming(e)
  229. assert l == None
  230. s, t = self.mvs.read_edge(g)
  231. assert s == None
  232. assert t == None
  233. l = self.mvs.read_outgoing(g)
  234. assert l == None
  235. l = self.mvs.read_incoming(g)
  236. assert l == None
  237. l = self.mvs.read_outgoing(f)
  238. assert l != None
  239. assert set(l) == set([])
  240. l = self.mvs.read_incoming(f)
  241. assert l != None
  242. assert set(l) == set([])
  243. s, t = self.mvs.read_edge(h)
  244. assert s == b
  245. assert t == c
  246. n = self.mvs.delete_edge(d)
  247. assert n == None
  248. l = self.mvs.read_outgoing(a)
  249. assert l != None
  250. assert set(l) == set([])
  251. l = self.mvs.read_incoming(a)
  252. assert l != None
  253. assert set(l) == set([])
  254. l = self.mvs.read_outgoing(b)
  255. assert l != None
  256. assert set(l) == set([h])
  257. l = self.mvs.read_incoming(b)
  258. assert l != None
  259. assert set(l) == set([])
  260. l = self.mvs.read_outgoing(c)
  261. assert l != None
  262. assert set(l) == set([])
  263. l = self.mvs.read_incoming(c)
  264. assert l != None
  265. assert set(l) == set([h])
  266. s, t = self.mvs.read_edge(d)
  267. assert s == None
  268. assert t == None
  269. l = self.mvs.read_outgoing(d)
  270. assert l == None
  271. l = self.mvs.read_incoming(d)
  272. assert l == None
  273. s, t = self.mvs.read_edge(e)
  274. assert s == None
  275. assert t == None
  276. l = self.mvs.read_outgoing(e)
  277. assert l == None
  278. l = self.mvs.read_incoming(e)
  279. assert l == None
  280. s, t = self.mvs.read_edge(g)
  281. assert s == None
  282. assert t == None
  283. l = self.mvs.read_outgoing(g)
  284. assert l == None
  285. l = self.mvs.read_incoming(g)
  286. assert l == None
  287. l = self.mvs.read_outgoing(f)
  288. assert l != None
  289. assert set(l) == set([])
  290. l = self.mvs.read_incoming(f)
  291. assert l != None
  292. assert set(l) == set([])
  293. s, t = self.mvs.read_edge(h)
  294. assert s == b
  295. assert t == c