[GRASS-SVN] r69682 - grass/trunk/lib/gis/testsuite

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Oct 6 14:44:43 PDT 2016


Author: wenzeslaus
Date: 2016-10-06 14:44:43 -0700 (Thu, 06 Oct 2016)
New Revision: 69682

Added:
   grass/trunk/lib/gis/testsuite/gis_lib_str_color.py
Log:
libgis: ctypes-based test for G_str_to_color (grass and names syntax)

Added: grass/trunk/lib/gis/testsuite/gis_lib_str_color.py
===================================================================
--- grass/trunk/lib/gis/testsuite/gis_lib_str_color.py	                        (rev 0)
+++ grass/trunk/lib/gis/testsuite/gis_lib_str_color.py	2016-10-06 21:44:43 UTC (rev 69682)
@@ -0,0 +1,77 @@
+"""Test of gis library string to color conversions
+
+ at author Vaclav Petras
+"""
+
+from ctypes import byref, c_int
+
+from grass.gunittest.case import TestCase
+from grass.gunittest.main import test
+
+import grass.lib.gis as libgis
+
+
+class StringToColorTestCase(TestCase):
+    """Test C function G_str_to_color() from gis library"""
+
+    def convert_color(self, string, red, green, blue):
+        """General test function to convert string to color
+
+        red, green, blue are expected values.
+        """
+        r = c_int()
+        g = c_int()
+        b = c_int()
+        ret = libgis.G_str_to_color(string, byref(r), byref(g), byref(b))
+        colors = ("{string} -> "
+                  "{r.value}, {g.value}, {b.value}".format(**locals()))
+        self.assertEqual(ret, 1,
+                         msg="Not successful return code (%s)" % colors)
+        self.assertEqual(r.value, red,
+                         msg="Wrong number for red (%s)" % colors)
+        self.assertEqual(g.value, green,
+                         msg="Wrong number for green (%s)" % colors)
+        self.assertEqual(b.value, blue,
+                         msg="Wrong number for blue (%s)" % colors)
+
+    def test_grass_format(self):
+        """Test GRASS GIS color format (RRR:GGG:BBB)"""
+        self.convert_color("50:150:250", 50, 150, 250)
+
+    def test_grass_format_black(self):
+        """Test GRASS GIS color black color"""
+        self.convert_color("0:0:0", 0, 0, 0)
+
+    def test_grass_format_white(self):
+        """Test GRASS GIS color white color"""
+        self.convert_color("255:255:255", 255, 255, 255)
+
+    def test_grass_format_separators(self):
+        """Test GRASS GIS color format with all allowed separators"""
+        self.convert_color("50,150,250", 50, 150, 250)
+        self.convert_color("50:150:250", 50, 150, 250)
+        self.convert_color("50;150;250", 50, 150, 250)
+        self.convert_color("50 150 250", 50, 150, 250)
+
+    def test_grass_format_multiple_separators(self):
+        """Test GRASS GIS color format with duplicated separators"""
+        self.convert_color("50, 150, 250", 50, 150, 250)
+        self.convert_color("50::150:250", 50, 150, 250)
+        self.convert_color("50  ; 150 ; 250", 50, 150, 250)
+        self.convert_color("50   150  250", 50, 150, 250)
+
+    def test_grass_format_whitespace(self):
+        """Test with whitespace (spaces) around the string"""
+        self.convert_color("  50:150:250    ", 50, 150, 250)
+
+    def test_grass_named_black(self):
+        """Test GRASS GIS color black color"""
+        self.convert_color("black", 0, 0, 0)
+
+    def test_grass_named_white(self):
+        """Test GRASS GIS color white color"""
+        self.convert_color("white", 255, 255, 255)
+
+
+if __name__ == '__main__':
+    test()


Property changes on: grass/trunk/lib/gis/testsuite/gis_lib_str_color.py
___________________________________________________________________
Added: svn:mime-type
   + text/x-python
Added: svn:eol-style
   + native



More information about the grass-commit mailing list