<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=CubicSpline%2F1002%2Ftest_NaCurves.py</id>
	<title>CubicSpline/1002/test NaCurves.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=CubicSpline%2F1002%2Ftest_NaCurves.py"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CubicSpline/1002/test_NaCurves.py&amp;action=history"/>
	<updated>2026-05-14T18:35:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CubicSpline/1002/test_NaCurves.py&amp;diff=31026&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CubicSpline/1002/test_NaCurves.py&amp;diff=31026&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; from wxPython.wx import *&lt;br /&gt;
 import unittest&lt;br /&gt;
 from NaCurves import *&lt;br /&gt;
 &lt;br /&gt;
 class TestGivenFunction(unittest.TestCase):&lt;br /&gt;
 	def testOne(self):&lt;br /&gt;
 		expected = 1 / (1 + 100 * ((-1.0)**2))&lt;br /&gt;
 		actual = givenFunction(-1.0)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testPow(self):&lt;br /&gt;
 		self.assertEquals (1, (-1.0)**2)&lt;br /&gt;
 &lt;br /&gt;
 	def testMany(self):&lt;br /&gt;
 		dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0]&lt;br /&gt;
 		for x in dataset:&lt;br /&gt;
 			expected = 1 / (1 + 100 * (x**2))&lt;br /&gt;
 			actual = givenFunction(x)&lt;br /&gt;
 			self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 class TestLagrange(unittest.TestCase):&lt;br /&gt;
 	def setUp(self):&lt;br /&gt;
 		self.dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0]&lt;br /&gt;
 		self.l = Lagrange(self.dataset)&lt;br /&gt;
 	def tearDown(self):&lt;br /&gt;
 		self.l = None&lt;br /&gt;
 &lt;br /&gt;
 	def _getX(self, i):&lt;br /&gt;
 		return self.dataset[i]&lt;br /&gt;
 	&lt;br /&gt;
 	def testFunctionExistence(self):&lt;br /&gt;
 		self.assert_(Lagrange);&lt;br /&gt;
 &lt;br /&gt;
 	def testInsertPointX(self):&lt;br /&gt;
 		l = Lagrange(self.dataset)&lt;br /&gt;
 		self.assertEquals (l.getControlPointListX(), self.dataset)&lt;br /&gt;
 		&lt;br /&gt;
 	def testInsertPointY(self):&lt;br /&gt;
 		l = Lagrange(self.dataset)&lt;br /&gt;
 		listY = []&lt;br /&gt;
 		for x in self.dataset:&lt;br /&gt;
 			listY.append(givenFunction(x))&lt;br /&gt;
 		&lt;br /&gt;
 		self.assertEquals (l.getControlPointListY(), listY)&lt;br /&gt;
 &lt;br /&gt;
 	def testSubBasedFunctionOne(self):&lt;br /&gt;
 		l = Lagrange(self.dataset)&lt;br /&gt;
 		x = -0.1&lt;br /&gt;
 &lt;br /&gt;
 		expected = (x - self._getX(1)) / (self._getX(0) - self._getX(1))&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,0,1), expected)&lt;br /&gt;
 		expected = (x - self._getX(2)) / (self._getX(0) - self._getX(2))&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,0,2), expected)&lt;br /&gt;
 		expected = (x - self._getX(3)) / (self._getX(0) - self._getX(3))&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,0,3), expected)&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,0,0), 1)&lt;br /&gt;
 &lt;br /&gt;
 	def testSubBasedFunctionTwo(self):&lt;br /&gt;
 		l = Lagrange(self.dataset)&lt;br /&gt;
 		x = -0.1&lt;br /&gt;
 &lt;br /&gt;
 		expected = (x - self._getX(0)) / (self._getX(1) - self._getX(0))&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,1,0), expected)&lt;br /&gt;
 		expected = (x - self._getX(2)) / (self._getX(1) - self._getX(2))&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,1,2), expected)&lt;br /&gt;
 		expected = (x - self._getX(3)) / (self._getX(1) - self._getX(3))&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,1,3), expected)&lt;br /&gt;
 		self.assertEquals (l._subBasedFunction(x,1,1), 1)&lt;br /&gt;
 &lt;br /&gt;
 	def testSubBasedFunctionMany(self):&lt;br /&gt;
 		l = Lagrange(self.dataset)&lt;br /&gt;
 		x = -0.3&lt;br /&gt;
 		for i in range(0, len(self.dataset)):&lt;br /&gt;
 			for j in range(0, len(self.dataset)):&lt;br /&gt;
 				actual = l._subBasedFunction (x, i, j)&lt;br /&gt;
 				if i == j:&lt;br /&gt;
 					self.assertEquals (actual, 1)&lt;br /&gt;
 				else:&lt;br /&gt;
 					expected = (x - self._getX(j)) / (self._getX(i) - self._getX(j))&lt;br /&gt;
 					self.assertEquals (expected, actual)&lt;br /&gt;
 &lt;br /&gt;
 	def testBasedFunctionOne(self):&lt;br /&gt;
 		x = -0.1&lt;br /&gt;
 		expected = 1&lt;br /&gt;
 		for i in range(1, len(self.dataset)):&lt;br /&gt;
 			expected *= (x - self._getX(i)) / (self._getX(0) - self._getX(i))&lt;br /&gt;
 		y0 = givenFunction(self.dataset[0])&lt;br /&gt;
 &lt;br /&gt;
 		self.assertEquals (self.l._basedFunction(x, 0), expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testBasedFunctionTwo(self):&lt;br /&gt;
 		x = -0.1&lt;br /&gt;
 		expected = 1&lt;br /&gt;
 		for i in range(0, len(self.dataset)):&lt;br /&gt;
 			if i == 1:&lt;br /&gt;
 				expected *= 1&lt;br /&gt;
 			else:&lt;br /&gt;
 				expected *= (x - self._getX(i)) / (self._getX(1) - self._getX(i))&lt;br /&gt;
 &lt;br /&gt;
 		self.assertEquals (self.l._basedFunction(x, 1), expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testLagrangeFunction(self):&lt;br /&gt;
 		self.assert_(self.l.perform)&lt;br /&gt;
 &lt;br /&gt;
 	def testInterpolation(self):&lt;br /&gt;
 		for x in self.dataset:&lt;br /&gt;
 			expected = givenFunction(x)&lt;br /&gt;
 			actual = self.l.perform(x)&lt;br /&gt;
 			self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testOne(self):&lt;br /&gt;
 		listX = [-0.8, -0.6, -0.4]&lt;br /&gt;
 		l = Lagrange(listX)&lt;br /&gt;
 		x = -0.5&lt;br /&gt;
 		expected = 1&lt;br /&gt;
 		actual = l._subBasedFunction(x, 0, 0)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 		expected = (x - listX[1]) / (listX[0] - listX[1])&lt;br /&gt;
 		actual = l._subBasedFunction(x, 0, 1)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 		expected = (x - listX[2]) / (listX[0] - listX[2])&lt;br /&gt;
 		actual = l._subBasedFunction(x, 0, 2)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 		expected = (x - listX[0]) / (listX[1] - listX[0])&lt;br /&gt;
 		actual = l._subBasedFunction(x, 1, 0)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testTwo(self):&lt;br /&gt;
 		listX = [-0.8, -0.6, -0.4]&lt;br /&gt;
 		l = Lagrange(listX)&lt;br /&gt;
 		x = -0.5&lt;br /&gt;
 &lt;br /&gt;
 		expected = 1&lt;br /&gt;
 		expected *= (x - listX[1]) / (listX[0] - listX[1])&lt;br /&gt;
 		expected *= (x - listX[2]) / (listX[0] - listX[2])&lt;br /&gt;
 		actual = l._basedFunction(x, 0)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testThree(self):&lt;br /&gt;
 		listX = [-0.8, -0.6, -0.4]&lt;br /&gt;
 		l = Lagrange(listX)&lt;br /&gt;
 &lt;br /&gt;
 		x = -0.8&lt;br /&gt;
 		expected = 1&lt;br /&gt;
 		expected *= (x - listX[1]) / (listX[0] - listX[1])&lt;br /&gt;
 		expected *= (x - listX[2]) / (listX[0] - listX[2])&lt;br /&gt;
 		expected *= givenFunction(x)&lt;br /&gt;
 &lt;br /&gt;
 		actual = l.perform(x)&lt;br /&gt;
 &lt;br /&gt;
 		self.assertEquals (expected, givenFunction(x))&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 class TestPiecewiseLagrange(unittest.TestCase):&lt;br /&gt;
 	def setUp(self):&lt;br /&gt;
 		self.dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0]&lt;br /&gt;
 	def testPiecewiseExistence(self):&lt;br /&gt;
 		self.assert_(PiecewiseLagrange)&lt;br /&gt;
 &lt;br /&gt;
 	def testInsertPointX(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		self.assertEquals (pl.getControlPointListX(), self.dataset)&lt;br /&gt;
 &lt;br /&gt;
 	def testInterpolation(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		for x in self.dataset:&lt;br /&gt;
 			expected = givenFunction(x)&lt;br /&gt;
 			actual = pl.perform(x)&lt;br /&gt;
 			self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testPerformOne(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		subPl = Lagrange([-1.0, -0.8, -0.6, -0.4])&lt;br /&gt;
 		x = -0.9&lt;br /&gt;
 		expected = subPl.perform(x)&lt;br /&gt;
 		actual = pl.perform(x)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testPerformTwo(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		subPl = Lagrange([-0.4, -0.2, 0.0, 0.2])&lt;br /&gt;
 		x = 0.1 &lt;br /&gt;
 		expected = subPl.perform(x)&lt;br /&gt;
 		actual = pl.perform(x)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testPerformThree(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		subPl = Lagrange([0.2, 0.4, 0.6, 0.8])&lt;br /&gt;
 		x = 0.5 &lt;br /&gt;
 		expected = subPl.perform(x)&lt;br /&gt;
 		actual = pl.perform(x)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testPerformFour(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		subPl = Lagrange([0.4, 0.6, 0.8, 1.0])&lt;br /&gt;
 		x = 0.95&lt;br /&gt;
 		expected = subPl.perform(x)&lt;br /&gt;
 		actual = pl.perform(x)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	def testControlPointPiece(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		expected = [-1.0, -0.8, -0.6, -0.4]&lt;br /&gt;
 		actual = pl.getPiece(1)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 		expected = [-0.4, -0.2, 0.0, 0.2]&lt;br /&gt;
 		actual = pl.getPiece(2)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 		expected = [0.2, 0.4, 0.6, 0.8]&lt;br /&gt;
 		actual = pl.getPiece(3)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 		expected = [0.4, 0.6, 0.8, 1.0]&lt;br /&gt;
 		actual = pl.getPiece(4)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testCountPieces(self):&lt;br /&gt;
 		pl = PiecewiseLagrange(self.dataset, 4)&lt;br /&gt;
 		self.assertEquals (pl.getCountPieces(), 4)&lt;br /&gt;
 &lt;br /&gt;
 class TestSpline(unittest.TestCase):&lt;br /&gt;
 	def setUp(self):&lt;br /&gt;
 		self.dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0]&lt;br /&gt;
 		self.s = Spline(self.dataset)&lt;br /&gt;
 &lt;br /&gt;
 	def tearDown(self):&lt;br /&gt;
 		self.s = None&lt;br /&gt;
 &lt;br /&gt;
 	def testInterpolation(self):&lt;br /&gt;
 		for x in self.dataset:&lt;br /&gt;
 			expected = givenFunction(x)&lt;br /&gt;
 			actual = self.s.perform(x)&lt;br /&gt;
 			self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testInsertPointX(self):&lt;br /&gt;
 		actual = self.s.getControlPointListX()&lt;br /&gt;
 		self.assertEquals (actual, self.dataset)&lt;br /&gt;
 &lt;br /&gt;
 	def testControlPointY(self):&lt;br /&gt;
 		expected = []&lt;br /&gt;
 		for x in self.dataset:&lt;br /&gt;
 			expected.append (givenFunction(x))&lt;br /&gt;
 		actual = self.s.getControlPointListY()&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 		&lt;br /&gt;
 	def testDeltaX(self):&lt;br /&gt;
 		expected = -0.8 - (-1.0)&lt;br /&gt;
 		actual = self.s.deltaX(0)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testDeltaY(self):&lt;br /&gt;
 		expected = givenFunction(self.dataset[1]) - givenFunction(self.dataset[0])&lt;br /&gt;
 		actual = self.s.deltaY(0)&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testEmptyMatrixA(self):&lt;br /&gt;
 		actual = self.s._makeEmptyMatrix()&lt;br /&gt;
 		expected = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],&lt;br /&gt;
 		[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]&lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def testMatrixA(self):&lt;br /&gt;
 		actual = self.s._makeMatrixA()&lt;br /&gt;
 &lt;br /&gt;
 		for i in range(0,9):&lt;br /&gt;
 			if i-1 &amp;amp;gt;= 0:&lt;br /&gt;
 				self.assertEquals (round(actual[i-1][i], 1), 0.2)&lt;br /&gt;
 				self.assertEquals (round(actual[i][i-1], 1), 0.2)&lt;br /&gt;
 			self.assertEquals (round(actual[i][i], 1), 0.8)&lt;br /&gt;
 		&lt;br /&gt;
 	def testMatrixB(self):	&lt;br /&gt;
 		actual = self.s._makeMatrixB()&lt;br /&gt;
 &lt;br /&gt;
 		expected = []&lt;br /&gt;
 		for i in range(1,10):&lt;br /&gt;
 			expected.append([6 * ( self.deltaY(i)/self.deltaX(i) - self.deltaY(i-1)/self.deltaX(i-1) )])&lt;br /&gt;
 &lt;br /&gt;
 		self.assertEquals (actual, expected)&lt;br /&gt;
 &lt;br /&gt;
 	def deltaX(self, i):&lt;br /&gt;
 		return self.dataset[i+1] - self.dataset[i]&lt;br /&gt;
 &lt;br /&gt;
 	def deltaY(self, i):&lt;br /&gt;
 		return givenFunction(self.dataset[i+1]) - givenFunction(self.dataset[i])&lt;br /&gt;
 &lt;br /&gt;
 	def testDoublePrimeY(self):&lt;br /&gt;
 		actual = self.s._makeDoublePrimeY()&lt;br /&gt;
 &lt;br /&gt;
 		self.assertEquals (actual[0][0], 0.0)&lt;br /&gt;
 		self.assertEquals (actual[10][0], 0.0)&lt;br /&gt;
 &lt;br /&gt;
 	def testPerform(self):&lt;br /&gt;
 		actual = self.s.perform(0)&lt;br /&gt;
 		print actual&lt;br /&gt;
 &lt;br /&gt;
 	def testAi(self):&lt;br /&gt;
 		actual = self.s.getAi(0)&lt;br /&gt;
 		print actual&lt;br /&gt;
 &lt;br /&gt;
 	def testBi(self):&lt;br /&gt;
 		actual = self.s.getBi(0)&lt;br /&gt;
 		print actual&lt;br /&gt;
 &lt;br /&gt;
 	def testCi(self):&lt;br /&gt;
 		actual = self.s.getCi(0)&lt;br /&gt;
 		print actual&lt;br /&gt;
 &lt;br /&gt;
 	def testDi(self):&lt;br /&gt;
 		actual = self.s.getDi(0)&lt;br /&gt;
 		print actual&lt;br /&gt;
 &lt;br /&gt;
 class TestApp(wxApp):&lt;br /&gt;
 	def OnInit(self):&lt;br /&gt;
 		return true&lt;br /&gt;
 &lt;br /&gt;
 if __name__==&amp;quot;__main__&amp;quot;:&lt;br /&gt;
 	app = TestApp(0)&lt;br /&gt;
 &lt;br /&gt;
 	unittest.main(argv=(&amp;#039;&amp;#039;,&amp;#039;-v&amp;#039;))&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>