replaced answer with a namedtuple
This commit is contained in:
+1
-1
@@ -21,4 +21,4 @@ if __name__ == '__main__':
|
||||
]
|
||||
|
||||
for test in tests:
|
||||
unittest.TextTestRunner(verbosity=3).run(test)
|
||||
unittest.TextTestRunner(verbosity=1).run(test)
|
||||
|
||||
+26
-14
@@ -3,6 +3,7 @@
|
||||
import unittest
|
||||
|
||||
from interp import baker
|
||||
from interp.baker import Answer
|
||||
|
||||
|
||||
class Test(unittest.TestCase):
|
||||
@@ -68,6 +69,17 @@ class Test(unittest.TestCase):
|
||||
|
||||
self.assertAlmostEqual(result, right_answer)
|
||||
|
||||
def testRunBaker_linear(self):
|
||||
size_of_simplex = 3
|
||||
|
||||
R, R_q = (self.all_points[:size_of_simplex],
|
||||
self.q[:size_of_simplex])
|
||||
|
||||
|
||||
answer = baker.interpolate(self.X, R, R_q)
|
||||
good_answer = Answer(qlin=0.5, final=None, error=None, abc={})
|
||||
self.assertEqual(answer, good_answer)
|
||||
|
||||
def testRunBaker_1(self):
|
||||
size_of_simplex = 3
|
||||
extra_points = 3
|
||||
@@ -79,11 +91,11 @@ class Test(unittest.TestCase):
|
||||
+ extra_points],
|
||||
self.q[size_of_simplex:size_of_simplex + extra_points])
|
||||
|
||||
answer = baker.run_baker(self.X, R, R_q, S, S_q)
|
||||
answer = baker.interpolate(self.X, R, R_q, S, S_q)
|
||||
|
||||
a = answer['abc'][0]
|
||||
b = answer['abc'][1]
|
||||
c = answer['abc'][2]
|
||||
a = answer.abc[0]
|
||||
b = answer.abc[1]
|
||||
c = answer.abc[2]
|
||||
|
||||
self.assertEqual(sorted((a, b, c)), sorted((0, 0.0, 1 / 3.)))
|
||||
|
||||
@@ -97,9 +109,9 @@ class Test(unittest.TestCase):
|
||||
+ extra_points],
|
||||
self.q[size_of_simplex:size_of_simplex + extra_points])
|
||||
|
||||
answer = baker.run_baker(self.X, R, R_q, S, S_q)
|
||||
answer = baker.interpolate(self.X, R, R_q, S, S_q)
|
||||
|
||||
a, b, c = sorted(answer['abc'])
|
||||
a, b, c = sorted(answer.abc)
|
||||
aa, bb, cc = sorted((2 / 3.0, 2 / 3.0, 1 / 3.0))
|
||||
|
||||
self.assertAlmostEqual(a, aa)
|
||||
@@ -115,11 +127,11 @@ class Test(unittest.TestCase):
|
||||
S, S_q = (self.all_points[size_of_simplex:size_of_simplex \
|
||||
+ extra_points],
|
||||
self.q[size_of_simplex:size_of_simplex + extra_points])
|
||||
answer = baker.run_baker(self.X, R, R_q, S, S_q)
|
||||
answer = baker.interpolate(self.X, R, R_q, S, S_q)
|
||||
|
||||
a = answer['abc'][0]
|
||||
b = answer['abc'][1]
|
||||
c = answer['abc'][2]
|
||||
a = answer.abc[0]
|
||||
b = answer.abc[1]
|
||||
c = answer.abc[2]
|
||||
|
||||
a, b, c = sorted((a, b, c))
|
||||
aa, bb, cc = sorted((13 / 14., 2 / 7., 15 / 14.))
|
||||
@@ -137,11 +149,11 @@ class Test(unittest.TestCase):
|
||||
S, S_q = (self.all_points[size_of_simplex:size_of_simplex \
|
||||
+ extra_points],
|
||||
self.q[size_of_simplex:size_of_simplex + extra_points])
|
||||
answer = baker.run_baker(self.X, R, R_q, S, S_q)
|
||||
answer = baker.interpolate(self.X, R, R_q, S, S_q)
|
||||
|
||||
a = answer['abc'][0]
|
||||
b = answer['abc'][1]
|
||||
c = answer['abc'][2]
|
||||
a = answer.abc[0]
|
||||
b = answer.abc[1]
|
||||
c = answer.abc[2]
|
||||
|
||||
a, b, c = sorted((a, b, c))
|
||||
aa, bb, cc = sorted((48 / 53.0, 15 / 53.0, 54 / 53.0))
|
||||
|
||||
@@ -77,7 +77,7 @@ class Test(unittest.TestCase):
|
||||
|
||||
self.phis, self.qlin = baker.qlinear(self.X, self.R, self.q)
|
||||
self.exact = exact_func(self.X)
|
||||
self.answer = baker.run_baker(self.X, self.R,
|
||||
self.answer = baker.interpolate(self.X, self.R,
|
||||
self.R_q, self.S, self.S_q)
|
||||
|
||||
def test_R_contains_X(self):
|
||||
@@ -86,22 +86,22 @@ class Test(unittest.TestCase):
|
||||
def test_1(self):
|
||||
a, b, c, d, e, f = (0, 1, 1, 2, 2, 0)
|
||||
err = calculate_error_term(self, a, b, c, d, e, f)
|
||||
self.assertAlmostEqual(err, self.answer['error'])
|
||||
self.assertAlmostEqual(err, self.answer.error)
|
||||
|
||||
def test_swap_first_elements(self):
|
||||
a, b, c, d, e, f = (1, 0, 1, 2, 2, 0)
|
||||
err = calculate_error_term(self, a, b, c, d, e, f)
|
||||
self.assertAlmostEqual(err, self.answer['error'])
|
||||
self.assertAlmostEqual(err, self.answer.error)
|
||||
|
||||
def test_swap_two_pairs(self):
|
||||
a, b, c, d, e, f = (1, 2, 0, 1, 2, 0)
|
||||
err = calculate_error_term(self, a, b, c, d, e, f)
|
||||
self.assertAlmostEqual(err, self.answer['error'])
|
||||
self.assertAlmostEqual(err, self.answer.error)
|
||||
|
||||
def test_swap_all_pairs(self):
|
||||
a, b, c, d, e, f = (0, 2, 0, 1, 2, 1)
|
||||
err = calculate_error_term(self, a, b, c, d, e, f)
|
||||
self.assertAlmostEqual(err, self.answer['error'])
|
||||
self.assertAlmostEqual(err, self.answer.error)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
+17
-18
@@ -2,9 +2,8 @@
|
||||
|
||||
import unittest
|
||||
|
||||
from interp.baker import run_baker
|
||||
|
||||
from interp.grid import contains
|
||||
from interp.baker import interpolate
|
||||
from interp.grid import contains
|
||||
|
||||
|
||||
def exact_func(X):
|
||||
@@ -36,42 +35,42 @@ class Test(unittest.TestCase):
|
||||
def test_RunBaker_1_extra_point(self, extra=1):
|
||||
S = self.g[3:3 + extra]
|
||||
S_q = self.q[3:3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
# expected failure ...
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_2_extra_point(self, extra=2):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3:3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_3_extra_point(self, extra=3):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3:3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_4_extra_point(self, extra=4):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3:3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_5_extra_point(self, extra=5):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3:3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q, order=3)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
+16
-17
@@ -2,8 +2,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
from interp.baker import run_baker
|
||||
|
||||
from interp.baker import interpolate
|
||||
from interp.grid import grid
|
||||
from interp.grid import contains
|
||||
|
||||
@@ -41,9 +40,9 @@ class Test(unittest.TestCase):
|
||||
def test_RunBaker_1_extra_point(self, extra=1):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3: 3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
|
||||
#XXX: not sure about this one:
|
||||
self.assertEqual(lin_err, final_err)
|
||||
@@ -51,33 +50,33 @@ class Test(unittest.TestCase):
|
||||
def test_RunBaker_2_extra_point(self, extra=2):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3: 3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_3_extra_point(self, extra=3):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3: 3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_4_extra_point(self, extra=4):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3: 3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
def test_RunBaker_5_extra_point(self, extra=5):
|
||||
S = self.g[3: 3 + extra]
|
||||
S_q = self.q[3: 3 + extra]
|
||||
answer = run_baker(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer['qlin'])
|
||||
final_err = abs(self.exact - answer['final'])
|
||||
answer = interpolate(self.X, self.R, self.R_q, S, S_q)
|
||||
lin_err = abs(self.exact - answer.qlin)
|
||||
final_err = abs(self.exact - answer.final)
|
||||
self.assertTrue(lin_err >= final_err)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user