Mercurial > hg > tvii
comparison tests/test_datasets.py @ 89:800f3938ebaa
test our pet datasets
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Sun, 17 Dec 2017 14:10:53 -0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 88:596dac7f3e98 | 89:800f3938ebaa |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 """ | |
| 4 test dataset generation | |
| 5 """ | |
| 6 | |
| 7 import math | |
| 8 import unittest | |
| 9 from tvii.dataset import circle | |
| 10 from tvii.dataset import line | |
| 11 | |
| 12 class DatasetGenerationTest(unittest.TestCase): | |
| 13 """test our dataset generation""" | |
| 14 | |
| 15 def test_random_circle(self): | |
| 16 """test generating points in a circle""" | |
| 17 | |
| 18 # test variables | |
| 19 center = (2.5, 3.5) | |
| 20 radius = 10. | |
| 21 number = 100000 | |
| 22 | |
| 23 # generate points | |
| 24 c = circle.CircularRandom(center, radius) | |
| 25 points = c(number) | |
| 26 | |
| 27 # validate | |
| 28 assert len(points) == number | |
| 29 offsets = [(point[0] - center[0], point[1] - center[1]) | |
| 30 for point in points] | |
| 31 distances = [math.hypot(*offset) for offset in offsets] | |
| 32 assert max(distances) <= radius | |
| 33 # TODO: ensure the distribution is fair (it's not) | |
| 34 | |
| 35 def test_x_range(self): | |
| 36 | |
| 37 x = line.x_range(0., 10., 11) | |
| 38 for expected, actual in enumerate(x): | |
| 39 self.assertAlmostEqual(actual, float(expected)) | |
| 40 | |
| 41 def test_line(self): | |
| 42 | |
| 43 # make a line | |
| 44 l = line.Line(1., 1.) | |
| 45 | |
| 46 self.assertAlmostEquals(l.y(1.), 2.) | |
| 47 self.assertAlmostEquals(l(2.)[0], 3.) | |
| 48 | |
| 49 | |
| 50 if __name__ == '__main__': | |
| 51 unittest.main() |
