test_read_reverse_dict.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import unittest
  2. from modelverse_state.main import ModelverseState
  3. class TestReadReverseDict(unittest.TestCase):
  4. def setUp(self):
  5. self.mvs = ModelverseState()
  6. def test_read_reverse_dict_no_exists(self):
  7. l = self.mvs.read_reverse_dict(-1, "abc")
  8. assert l == None
  9. def test_read_reverse_dict_not_found_node(self):
  10. a = self.mvs.create_node()
  11. assert a != None
  12. # Passing data is not enforced, as the data will be interpreted if necessary
  13. l = self.mvs.read_reverse_dict(a, "abc")
  14. assert l == None
  15. def test_read_reverse_dict_not_found_nodevalue(self):
  16. a = self.mvs.create_nodevalue(1)
  17. assert a != None
  18. # Passing data is not enforced, as the data will be interpreted if necessary
  19. l = self.mvs.read_reverse_dict(a, "abc")
  20. assert l == None
  21. def test_read_reverse_dict_not_found_edge(self):
  22. a = self.mvs.create_node()
  23. b = self.mvs.create_node()
  24. c = self.mvs.create_edge(a, b)
  25. assert a != None
  26. assert b != None
  27. assert c != None
  28. # Passing data is not enforced, as the data will be interpreted if necessary
  29. l = self.mvs.read_reverse_dict(c, "abc")
  30. assert l == None
  31. def test_read_reverse_dict_no_primitive(self):
  32. a = self.mvs.create_node()
  33. assert a != None
  34. # Passing data is not enforced, as the data will be interpreted if necessary
  35. l = self.mvs.read_reverse_dict(a, a)
  36. assert l == None
  37. def test_read_reverse_dict_node_simple(self):
  38. a = self.mvs.create_node()
  39. b = self.mvs.create_node()
  40. c = self.mvs.create_nodevalue("f")
  41. d = self.mvs.create_edge(a, b)
  42. e = self.mvs.create_edge(d, c)
  43. assert a != None
  44. assert b != None
  45. assert c != None
  46. assert d != None
  47. assert e != None
  48. l = self.mvs.read_reverse_dict(b, "f")
  49. assert l != None
  50. assert set(l) == set([a])
  51. def test_read_reverse_dict_no_match(self):
  52. a = self.mvs.create_node()
  53. b = self.mvs.create_node()
  54. c = self.mvs.create_nodevalue("g")
  55. d = self.mvs.create_edge(a, b)
  56. e = self.mvs.create_edge(d, c)
  57. assert a != None
  58. assert b != None
  59. assert c != None
  60. assert d != None
  61. assert e != None
  62. l = self.mvs.read_reverse_dict(b, "f")
  63. assert l == None
  64. def test_read_reverse_dict_node_multi(self):
  65. a = self.mvs.create_node()
  66. b = self.mvs.create_node()
  67. c = self.mvs.create_nodevalue("f")
  68. d = self.mvs.create_edge(a, b)
  69. e = self.mvs.create_edge(d, c)
  70. assert a != None
  71. assert b != None
  72. assert c != None
  73. assert d != None
  74. assert e != None
  75. g = self.mvs.create_node()
  76. h = self.mvs.create_nodevalue("k")
  77. i = self.mvs.create_edge(a, g)
  78. j = self.mvs.create_edge(i, h)
  79. assert g != None
  80. assert h != None
  81. assert i != None
  82. assert j != None
  83. l = self.mvs.read_reverse_dict(b, "f")
  84. assert l != None
  85. assert set(l) == set([a])
  86. l = self.mvs.read_reverse_dict(g, "k")
  87. assert l != None
  88. assert set(l) == set([a])
  89. l = self.mvs.read_reverse_dict(a, "l")
  90. assert l == None
  91. def test_read_reverse_dict_node_multi_ambiguous(self):
  92. a = self.mvs.create_node()
  93. b = self.mvs.create_node()
  94. c = self.mvs.create_nodevalue("f")
  95. d = self.mvs.create_edge(b, a)
  96. e = self.mvs.create_edge(d, c)
  97. assert a != None
  98. assert b != None
  99. assert c != None
  100. assert d != None
  101. assert e != None
  102. g = self.mvs.create_node()
  103. h = self.mvs.create_nodevalue("f")
  104. i = self.mvs.create_edge(g, a)
  105. j = self.mvs.create_edge(i, h)
  106. assert g != None
  107. assert h != None
  108. assert i != None
  109. assert j != None
  110. l = self.mvs.read_reverse_dict(a, "f")
  111. assert l != None
  112. assert set(l) == set([b, g])
  113. def test_read_reverse_dict_node_uncertain(self):
  114. a = self.mvs.create_node()
  115. b = self.mvs.create_node()
  116. c = self.mvs.create_nodevalue("f")
  117. d = self.mvs.create_edge(a, b)
  118. e = self.mvs.create_edge(d, c)
  119. assert a != None
  120. assert b != None
  121. assert c != None
  122. assert d != None
  123. assert e != None
  124. h = self.mvs.create_nodevalue("g")
  125. i = self.mvs.create_edge(d, h)
  126. assert h != None
  127. assert i != None
  128. l = self.mvs.read_reverse_dict(b, "f")
  129. assert l == None