test_read_reverse_dict.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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 != []
  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 == []
  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 == []
  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 == []
  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 == []
  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 set(l) == set([a])
  50. def test_read_reverse_dict_no_match(self):
  51. a = self.mvs.create_node()
  52. b = self.mvs.create_node()
  53. c = self.mvs.create_nodevalue("g")
  54. d = self.mvs.create_edge(a, b)
  55. e = self.mvs.create_edge(d, c)
  56. assert a != None
  57. assert b != None
  58. assert c != None
  59. assert d != None
  60. assert e != None
  61. l = self.mvs.read_reverse_dict(b, "f")
  62. assert l == []
  63. def test_read_reverse_dict_node_multi(self):
  64. a = self.mvs.create_node()
  65. b = self.mvs.create_node()
  66. c = self.mvs.create_nodevalue("f")
  67. d = self.mvs.create_edge(a, b)
  68. e = self.mvs.create_edge(d, c)
  69. assert a != None
  70. assert b != None
  71. assert c != None
  72. assert d != None
  73. assert e != None
  74. g = self.mvs.create_node()
  75. h = self.mvs.create_nodevalue("k")
  76. i = self.mvs.create_edge(a, g)
  77. j = self.mvs.create_edge(i, h)
  78. assert g != None
  79. assert h != None
  80. assert i != None
  81. assert j != None
  82. l = self.mvs.read_reverse_dict(b, "f")
  83. assert set(l) == set([a])
  84. l = self.mvs.read_reverse_dict(g, "k")
  85. assert set(l) == set([a])
  86. l = self.mvs.read_reverse_dict(a, "l")
  87. assert l == []
  88. def test_read_reverse_dict_node_multi_ambiguous(self):
  89. a = self.mvs.create_node()
  90. b = self.mvs.create_node()
  91. c = self.mvs.create_nodevalue("f")
  92. d = self.mvs.create_edge(b, a)
  93. e = self.mvs.create_edge(d, c)
  94. assert a != None
  95. assert b != None
  96. assert c != None
  97. assert d != None
  98. assert e != None
  99. g = self.mvs.create_node()
  100. h = self.mvs.create_nodevalue("f")
  101. i = self.mvs.create_edge(g, a)
  102. j = self.mvs.create_edge(i, h)
  103. assert g != None
  104. assert h != None
  105. assert i != None
  106. assert j != None
  107. l = self.mvs.read_reverse_dict(a, "f")
  108. assert set(l) == set([b, g])
  109. def test_read_reverse_dict_node_uncertain(self):
  110. a = self.mvs.create_node()
  111. b = self.mvs.create_node()
  112. c = self.mvs.create_nodevalue("f")
  113. d = self.mvs.create_edge(a, b)
  114. e = self.mvs.create_edge(d, c)
  115. assert a != None
  116. assert b != None
  117. assert c != None
  118. assert d != None
  119. assert e != None
  120. h = self.mvs.create_nodevalue("g")
  121. i = self.mvs.create_edge(d, h)
  122. assert h != None
  123. assert i != None
  124. l = self.mvs.read_reverse_dict(b, "f")
  125. assert set(l) == set([a])