예제 #1
0
 def test_tabulated_failures(self):
     with self.assertRaisesRegex(ValueError, 'do not match'):
         ct.TabulatedFunction(range(2), range(3))
     with self.assertRaisesRegex(ValueError, 'must not be empty'):
         ct.TabulatedFunction([], [])
     with self.assertRaisesRegex(ct.CanteraError, 'monotonically'):
         ct.TabulatedFunction((0, 1, 0.5, 2), (2, 1, 1, 0))
     with self.assertRaisesRegex(ct.CanteraError, 'not implemented'):
         ct.TabulatedFunction((0, 1, 1, 2), (2, 1, 1, 0),
                              method='not implemented')
예제 #2
0
 def test_tabulated1(self):
     arr = np.array([[0, 2], [1, 1], [2, 0]])
     time = arr[:, 0]
     fval = arr[:, 1]
     fcn = ct.TabulatedFunction(time, fval)
     for t, f in zip(time, fval):
         self.assertNear(f, fcn(t))
예제 #3
0
 def test_tabulated4(self):
     time = np.array([0, 1, 2])
     fval = np.array([2, 1, 0])
     fcn = ct.TabulatedFunction(time, fval)
     tt = .5 * (time[1:] + time[:-1])
     ff = .5 * (fval[1:] + fval[:-1])
     for t, f in zip(tt, ff):
         self.assertNear(f, fcn(t))
예제 #4
0
 def test_tabulated3(self):
     time = 0, 1, 2,
     fval = 2, 1, 0,
     fcn = ct.TabulatedFunction(time, fval)
     self.assertNear(fcn(-1), fval[0])
     self.assertNear(fcn(3), fval[-1])
예제 #5
0
 def test_tabulated2(self):
     time = [0, 1, 2]
     fval = [2, 1, 0]
     fcn = ct.TabulatedFunction(time, fval)
     for t, f in zip(time, fval):
         self.assertNear(f, fcn(t))
예제 #6
0
 def test_tabulated5(self):
     time = [0, 1, 2]
     fval = [2, 1, 0]
     fcn = ct.TabulatedFunction(time, fval, method='previous')
     val = np.array([fcn(v) for v in [-0.5, 0, 0.5, 1.5, 2, 2.5]])
     self.assertArrayNear(val, np.array([2.0, 2.0, 2.0, 1.0, 0.0, 0.0]))