test_g_bands.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import os
  2. from grass.gunittest.case import TestCase
  3. from grass.gunittest.main import test
  4. from grass.gunittest.gmodules import call_module
  5. class TestBandsSystemDefined(TestCase):
  6. @staticmethod
  7. def _number_of_bands(**kwargs):
  8. gbands = call_module('g.bands', **kwargs)
  9. return len(gbands.rstrip(os.linesep).split(os.linesep))
  10. def test_number_system_defined(self):
  11. # test number of valid band identifiers
  12. #
  13. # get number of valid band identifiers by g.bands
  14. nbands = self._number_of_bands()
  15. # get number of valid band identifiers by Bands lib
  16. from grass.bandref import BandReferenceReader
  17. nbands_ref = len(BandReferenceReader().get_bands())
  18. self.assertEqual(nbands, nbands_ref)
  19. def test_number_s2(self):
  20. # test number of S2 band identifiers (hardcoded, no changes expected)
  21. #
  22. nbands = self._number_of_bands(band='S2')
  23. self.assertEqual(nbands, 13)
  24. def test_number_s2_1(self):
  25. # test if S2_1 is defined (lower + upper case)
  26. #
  27. band = 'S2_1'
  28. for iband in [band, band.lower()]:
  29. nbands = self._number_of_bands(band=iband)
  30. self.assertEqual(nbands, 1)
  31. if __name__ == '__main__':
  32. test()