test_assertions_vect.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. # -*- coding: utf-8 -*-
  2. """
  3. Tests assertion methods for vectors.
  4. """
  5. import grass.gunittest as gunittest
  6. V_UNIVAR_BRIDGES_WIDTH_SUBSET = """n=10938
  7. nmissing=0
  8. nnull=0
  9. min=0
  10. max=1451
  11. range=1451
  12. sum=2.6299e+06
  13. mean=240.437
  14. """
  15. RANDOM_KEYVALUES = """abc=2025000
  16. aaa=55.5787925720215
  17. bbb=156.329864501953
  18. """
  19. # v.info bridges -t
  20. V_UNIVAR_BRIDGES_TOPO = dict(
  21. nodes=0,
  22. points=10938,
  23. lines=0,
  24. boundaries=0,
  25. centroids=0,
  26. areas=0,
  27. islands=0,
  28. primitives=10938,
  29. map3d=0,
  30. )
  31. # v.info bridges -g and rounded
  32. V_UNIVAR_BRIDGES_REGION = dict(
  33. north=317757,
  34. south=14691,
  35. east=915045,
  36. west=125794,
  37. top=0,
  38. bottom=0,
  39. )
  40. # v.info bridges -g and reduced to minumum
  41. V_UNIVAR_BRIDGES_EXTENDED = dict(
  42. name='bridges',
  43. level=2,
  44. num_dblinks=1,
  45. )
  46. class TestVectorMapAssertions(gunittest.TestCase):
  47. """Test assertions of map meta and statistics"""
  48. # pylint: disable=R0904
  49. def test_assertVectorFitsUnivar(self):
  50. self.assertVectorFitsUnivar(map='bridges', column='WIDTH',
  51. reference=V_UNIVAR_BRIDGES_WIDTH_SUBSET,
  52. precision=0.01)
  53. self.assertRaises(self.failureException,
  54. self.assertVectorFitsUnivar,
  55. map='bridges', column='YEAR_BUILT',
  56. reference=V_UNIVAR_BRIDGES_WIDTH_SUBSET,
  57. precision=0.01)
  58. self.assertRaises(ValueError,
  59. self.assertVectorFitsUnivar,
  60. map='bridges', column='WIDTH',
  61. reference=RANDOM_KEYVALUES)
  62. def test_assertVectorFitsTopoInfo(self):
  63. self.assertVectorFitsTopoInfo('bridges', V_UNIVAR_BRIDGES_TOPO)
  64. self.assertRaises(self.failureException,
  65. self.assertVectorFitsTopoInfo,
  66. 'lakes',
  67. V_UNIVAR_BRIDGES_TOPO)
  68. self.assertRaises(ValueError,
  69. self.assertVectorFitsTopoInfo,
  70. 'bridges', RANDOM_KEYVALUES)
  71. self.assertRaises(ValueError,
  72. self.assertVectorFitsTopoInfo,
  73. 'bridges', V_UNIVAR_BRIDGES_REGION)
  74. def test_assertVectorFitsRegionInfo(self):
  75. self.assertVectorFitsRegionInfo('bridges', V_UNIVAR_BRIDGES_REGION, precision=1.0)
  76. self.assertRaises(self.failureException,
  77. self.assertVectorFitsRegionInfo,
  78. 'lakes', V_UNIVAR_BRIDGES_REGION, precision=1.0)
  79. self.assertRaises(ValueError,
  80. self.assertVectorFitsRegionInfo,
  81. 'bridges', RANDOM_KEYVALUES, precision=1.0)
  82. self.assertRaises(ValueError,
  83. self.assertVectorFitsRegionInfo,
  84. 'bridges', V_UNIVAR_BRIDGES_TOPO, precision=1.0)
  85. def test_assertVectorFitsExtendedInfo(self):
  86. self.assertVectorFitsExtendedInfo('bridges', V_UNIVAR_BRIDGES_EXTENDED)
  87. self.assertRaises(self.failureException,
  88. self.assertVectorFitsExtendedInfo,
  89. 'lakes',
  90. V_UNIVAR_BRIDGES_EXTENDED)
  91. self.assertRaises(ValueError,
  92. self.assertVectorFitsExtendedInfo,
  93. 'bridges',
  94. RANDOM_KEYVALUES)
  95. self.assertRaises(ValueError,
  96. self.assertVectorFitsExtendedInfo,
  97. 'bridges',
  98. V_UNIVAR_BRIDGES_TOPO)
  99. if __name__ == '__main__':
  100. gunittest.test()