working on getting baker to work in 3D. the code runs, but the numbers are odd. I suspect the rectangular grid, and am going to try a random cloud of points.

This commit is contained in:
Stephen Mardson McQuay
2010-03-18 23:18:59 -06:00
parent a2d7b3f063
commit b33159f8a9
8 changed files with 151 additions and 154 deletions
+23 -24
View File
@@ -10,7 +10,6 @@ import scipy.spatial
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.l = [[-1, 1], [-1, 0], [-1, 1], [0, -1], [0, 0], [0, 1], [1, -1], [1, 0], [1, 1]]
self.approx_fmt = "%0.6f"
self.all_points = [
[ 0, 0], # 0
[ 1, 0], # 1
@@ -37,9 +36,9 @@ class TestSequenceFunctions(unittest.TestCase):
r = [[-1, -1], [0, 2], [1, -1]]
result = baker.get_phis(X, r)
result = [self.approx_fmt % i for i in result]
result = [round(i, 5) for i in result]
right_answer = [self.approx_fmt % i for i in [1/3.0, 1/3.0, 1/3.0]]
right_answer = [round(i, 5) for i in [1/3.0, 1/3.0, 1/3.0]]
for a,b in zip(result, right_answer):
self.assertEqual(a,b)
@@ -78,13 +77,13 @@ class TestSequenceFunctions(unittest.TestCase):
self.q[size_of_simplex:size_of_simplex + extra_points])
answer = baker.run_baker(self.X, R, S)
a = self.approx_fmt % answer['a']
b = self.approx_fmt % answer['b']
c = self.approx_fmt % answer['c']
a = round(answer['a'], 5)
b = round(answer['b'], 5)
c = round(answer['c'], 5)
self.assertEqual(a, c)
self.assertEqual(c, self.approx_fmt % 0.00)
self.assertEqual(b, self.approx_fmt % (1/3.0))
self.assertEqual(c, round(0.00 , 5))
self.assertEqual(b, round(1/3.0, 5))
def testRunBaker_2(self):
size_of_simplex = 3
@@ -98,12 +97,12 @@ class TestSequenceFunctions(unittest.TestCase):
answer = baker.run_baker(self.X, R, S)
a = self.approx_fmt % answer['a']
b = self.approx_fmt % answer['b']
c = self.approx_fmt % answer['c']
a = round(answer['a'], 5)
b = round(answer['b'], 5)
c = round(answer['c'], 5)
self.assertEqual(a, c)
self.assertEqual(c, self.approx_fmt % float(2/3.0))
self.assertEqual(c, round(float(2/3.0), 5))
def testRunBaker_3(self):
size_of_simplex = 3
@@ -116,13 +115,13 @@ class TestSequenceFunctions(unittest.TestCase):
self.q[size_of_simplex:size_of_simplex + extra_points])
answer = baker.run_baker(self.X, R, S)
a = self.approx_fmt % answer['a']
b = self.approx_fmt % answer['b']
c = self.approx_fmt % answer['c']
a = round(answer['a'], 5)
b = round(answer['b'], 5)
c = round(answer['c'], 5)
self.assertEqual(a, self.approx_fmt % float(13/14.0))
self.assertEqual(b, self.approx_fmt % float(2 / 7.0))
self.assertEqual(c, self.approx_fmt % float(15/14.0))
self.assertEqual(a, round(float(13/14.0), 5))
self.assertEqual(b, round(float(2 / 7.0), 5))
self.assertEqual(c, round(float(15/14.0), 5))
def testRunBaker_4(self):
size_of_simplex = 3
@@ -135,13 +134,13 @@ class TestSequenceFunctions(unittest.TestCase):
self.q[size_of_simplex:size_of_simplex + extra_points])
answer = baker.run_baker(self.X, R, S)
a = self.approx_fmt % answer['a']
b = self.approx_fmt % answer['b']
c = self.approx_fmt % answer['c']
a = round(answer['a'], 5)
b = round(answer['b'], 5)
c = round(answer['c'], 5)
self.assertEqual(a, self.approx_fmt % float(48/53.0))
self.assertEqual(b, self.approx_fmt % float(15/53.0))
self.assertEqual(c, self.approx_fmt % float(54/53.0))
self.assertEqual(a, round(float(48/53.0), 5))
self.assertEqual(b, round(float(15/53.0), 5))
self.assertEqual(c, round(float(54/53.0), 5))
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)