changeset 89:800f3938ebaa

test our pet datasets
author Jeff Hammel <k0scist@gmail.com>
date Sun, 17 Dec 2017 14:10:53 -0800
parents 596dac7f3e98
children 3ff05538259c
files tests/test_datasets.py
diffstat 1 files changed, 51 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_datasets.py	Sun Dec 17 14:10:53 2017 -0800
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+
+"""
+test dataset generation
+"""
+
+import math
+import unittest
+from tvii.dataset import circle
+from tvii.dataset import line
+
+class DatasetGenerationTest(unittest.TestCase):
+    """test our dataset generation"""
+
+    def test_random_circle(self):
+        """test generating points in a circle"""
+
+        # test variables
+        center = (2.5, 3.5)
+        radius = 10.
+        number = 100000
+
+        # generate points
+        c = circle.CircularRandom(center, radius)
+        points = c(number)
+
+        # validate
+        assert len(points) == number
+        offsets = [(point[0] - center[0], point[1] - center[1])
+                   for point in points]
+        distances = [math.hypot(*offset) for offset in offsets]
+        assert max(distances) <= radius
+        # TODO: ensure the distribution is fair  (it's not)
+
+    def test_x_range(self):
+
+        x = line.x_range(0., 10., 11)
+        for expected, actual in enumerate(x):
+            self.assertAlmostEqual(actual, float(expected))
+
+    def test_line(self):
+
+        # make a line
+        l = line.Line(1., 1.)
+
+        self.assertAlmostEquals(l.y(1.), 2.)
+        self.assertAlmostEquals(l(2.)[0], 3.)
+
+
+if __name__ == '__main__':
+    unittest.main()