<pre class='wikiSyntax' id='PRE-d47a1c79d057fc468ecf3ab75b8a9866' style='font-family:FixedSys,monospace;color:#c0c0c0;background-color:black'>
<span class="line"><font color="#ff40ff">from</font> wxPython.wx <font color="#ff40ff">import</font> *</span>
<span class="line"><font color="#ff40ff">import</font> unittest</span>
<span class="line"><font color="#ff40ff">from</font> NaCurves <font color="#ff40ff">import</font> *</span>
<span class="line"></span>
<span class="line"><font color="#ffff00">class</font> <font color="#00ffff">TestGivenFunction</font>(unittest.TestCase):</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testOne</font>(self):</span>
<span class="line">                expected = 1 / (1 + 100 * ((-1.0)**2))</span>
<span class="line">                actual = givenFunction(-1.0)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPow</font>(self):</span>
<span class="line">                self.assertEquals (1, (-1.0)**2)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testMany</font>(self):</span>
<span class="line">                dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0]</span>
<span class="line">                <font color="#ffff00">for</font> x <font color="#ffff00">in</font> dataset:</span>
<span class="line">                        expected = 1 / (1 + 100 * (x**2))</span>
<span class="line">                        actual = givenFunction(x)</span>
<span class="line">                        self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line"><font color="#ffff00">class</font> <font color="#00ffff">TestLagrange</font>(unittest.TestCase):</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">setUp</font>(self):</span>
<span class="line">                self.dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0]</span>
<span class="line">                self.l = Lagrange(self.dataset)</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">tearDown</font>(self):</span>
<span class="line">                self.l = None</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">_getX</font>(self, i):</span>
<span class="line">                <font color="#ffff00">return</font> self.dataset[i]</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testFunctionExistence</font>(self):</span>
<span class="line">                self.assert_(Lagrange);</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInsertPointX</font>(self):</span>
<span class="line">                l = Lagrange(self.dataset)</span>
<span class="line">                self.assertEquals (l.getControlPointListX(), self.dataset)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInsertPointY</font>(self):</span>
<span class="line">                l = Lagrange(self.dataset)</span>
<span class="line">                listY = []</span>
<span class="line">                <font color="#ffff00">for</font> x <font color="#ffff00">in</font> self.dataset:</span>
<span class="line">                        listY.append(givenFunction(x))</span>
<span class="line"></span>
<span class="line">                self.assertEquals (l.getControlPointListY(), listY)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testSubBasedFunctionOne</font>(self):</span>
<span class="line">                l = Lagrange(self.dataset)</span>
<span class="line">                x = -0.1</span>
<span class="line"></span>
<span class="line">                expected = (x - self._getX(1)) / (self._getX(0) - self._getX(1))</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,0,1), expected)</span>
<span class="line">                expected = (x - self._getX(2)) / (self._getX(0) - self._getX(2))</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,0,2), expected)</span>
<span class="line">                expected = (x - self._getX(3)) / (self._getX(0) - self._getX(3))</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,0,3), expected)</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,0,0), 1)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testSubBasedFunctionTwo</font>(self):</span>
<span class="line">                l = Lagrange(self.dataset)</span>
<span class="line">                x = -0.1</span>
<span class="line"></span>
<span class="line">                expected = (x - self._getX(0)) / (self._getX(1) - self._getX(0))</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,1,0), expected)</span>
<span class="line">                expected = (x - self._getX(2)) / (self._getX(1) - self._getX(2))</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,1,2), expected)</span>
<span class="line">                expected = (x - self._getX(3)) / (self._getX(1) - self._getX(3))</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,1,3), expected)</span>
<span class="line">                self.assertEquals (l._subBasedFunction(x,1,1), 1)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testSubBasedFunctionMany</font>(self):</span>
<span class="line">                l = Lagrange(self.dataset)</span>
<span class="line">                x = -0.3</span>
<span class="line">                <font color="#ffff00">for</font> i <font color="#ffff00">in</font> range(0, len(self.dataset)):</span>
<span class="line">                        <font color="#ffff00">for</font> j <font color="#ffff00">in</font> range(0, len(self.dataset)):</span>
<span class="line">                                actual = l._subBasedFunction (x, i, j)</span>
<span class="line">                                <font color="#ffff00">if</font> i == j:</span>
<span class="line">                                        self.assertEquals (actual, 1)</span>
<span class="line">                                <font color="#ffff00">else</font>:</span>
<span class="line">                                        expected = (x - self._getX(j)) / (self._getX(i) - self._getX(j))</span>
<span class="line">                                        self.assertEquals (expected, actual)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testBasedFunctionOne</font>(self):</span>
<span class="line">                x = -0.1</span>
<span class="line">                expected = 1</span>
<span class="line">                <font color="#ffff00">for</font> i <font color="#ffff00">in</font> range(1, len(self.dataset)):</span>
<span class="line">                        expected *= (x - self._getX(i)) / (self._getX(0) - self._getX(i))</span>
<span class="line">                y0 = givenFunction(self.dataset[0])</span>
<span class="line"></span>
<span class="line">                self.assertEquals (self.l._basedFunction(x, 0), expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testBasedFunctionTwo</font>(self):</span>
<span class="line">                x = -0.1</span>
<span class="line">                expected = 1</span>
<span class="line">                <font color="#ffff00">for</font> i <font color="#ffff00">in</font> range(0, len(self.dataset)):</span>
<span class="line">                        <font color="#ffff00">if</font> i == 1:</span>
<span class="line">                                expected *= 1</span>
<span class="line">                        <font color="#ffff00">else</font>:</span>
<span class="line">                                expected *= (x - self._getX(i)) / (self._getX(1) - self._getX(i))</span>
<span class="line"></span>
<span class="line">                self.assertEquals (self.l._basedFunction(x, 1), expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testLagrangeFunction</font>(self):</span>
<span class="line">                self.assert_(self.l.perform)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInterpolation</font>(self):</span>
<span class="line">                <font color="#ffff00">for</font> x <font color="#ffff00">in</font> self.dataset:</span>
<span class="line">                        expected = givenFunction(x)</span>
<span class="line">                        actual = self.l.perform(x)</span>
<span class="line">                        self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testOne</font>(self):</span>
<span class="line">                listX = [-0.8, -0.6, -0.4]</span>
<span class="line">                l = Lagrange(listX)</span>
<span class="line">                x = -0.5</span>
<span class="line">                expected = 1</span>
<span class="line">                actual = l._subBasedFunction(x, 0, 0)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">                expected = (x - listX[1]) / (listX[0] - listX[1])</span>
<span class="line">                actual = l._subBasedFunction(x, 0, 1)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">                expected = (x - listX[2]) / (listX[0] - listX[2])</span>
<span class="line">                actual = l._subBasedFunction(x, 0, 2)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">                expected = (x - listX[0]) / (listX[1] - listX[0])</span>
<span class="line">                actual = l._subBasedFunction(x, 1, 0)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testTwo</font>(self):</span>
<span class="line">                listX = [-0.8, -0.6, -0.4]</span>
<span class="line">                l = Lagrange(listX)</span>
<span class="line">                x = -0.5</span>
<span class="line"></span>
<span class="line">                expected = 1</span>
<span class="line">                expected *= (x - listX[1]) / (listX[0] - listX[1])</span>
<span class="line">                expected *= (x - listX[2]) / (listX[0] - listX[2])</span>
<span class="line">                actual = l._basedFunction(x, 0)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testThree</font>(self):</span>
<span class="line">                listX = [-0.8, -0.6, -0.4]</span>
<span class="line">                l = Lagrange(listX)</span>
<span class="line"></span>
<span class="line">                x = -0.8</span>
<span class="line">                expected = 1</span>
<span class="line">                expected *= (x - listX[1]) / (listX[0] - listX[1])</span>
<span class="line">                expected *= (x - listX[2]) / (listX[0] - listX[2])</span>
<span class="line">                expected *= givenFunction(x)</span>
<span class="line"></span>
<span class="line">                actual = l.perform(x)</span>
<span class="line"></span>
<span class="line">                self.assertEquals (expected, givenFunction(x))</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line"><font color="#ffff00">class</font> <font color="#00ffff">TestPiecewiseLagrange</font>(unittest.TestCase):</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">setUp</font>(self):</span>
<span class="line">                self.dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0]</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPiecewiseExistence</font>(self):</span>
<span class="line">                self.assert_(PiecewiseLagrange)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInsertPointX</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                self.assertEquals (pl.getControlPointListX(), self.dataset)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInterpolation</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                <font color="#ffff00">for</font> x <font color="#ffff00">in</font> self.dataset:</span>
<span class="line">                        expected = givenFunction(x)</span>
<span class="line">                        actual = pl.perform(x)</span>
<span class="line">                        self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPerformOne</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                subPl = Lagrange([-1.0, -0.8, -0.6, -0.4])</span>
<span class="line">                x = -0.9</span>
<span class="line">                expected = subPl.perform(x)</span>
<span class="line">                actual = pl.perform(x)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPerformTwo</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                subPl = Lagrange([-0.4, -0.2, 0.0, 0.2])</span>
<span class="line">                x = 0.1</span>
<span class="line">                expected = subPl.perform(x)</span>
<span class="line">                actual = pl.perform(x)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPerformThree</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                subPl = Lagrange([0.2, 0.4, 0.6, 0.8])</span>
<span class="line">                x = 0.5</span>
<span class="line">                expected = subPl.perform(x)</span>
<span class="line">                actual = pl.perform(x)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPerformFour</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                subPl = Lagrange([0.4, 0.6, 0.8, 1.0])</span>
<span class="line">                x = 0.95</span>
<span class="line">                expected = subPl.perform(x)</span>
<span class="line">                actual = pl.perform(x)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testControlPointPiece</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                expected = [-1.0, -0.8, -0.6, -0.4]</span>
<span class="line">                actual = pl.getPiece(1)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">                expected = [-0.4, -0.2, 0.0, 0.2]</span>
<span class="line">                actual = pl.getPiece(2)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">                expected = [0.2, 0.4, 0.6, 0.8]</span>
<span class="line">                actual = pl.getPiece(3)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">                expected = [0.4, 0.6, 0.8, 1.0]</span>
<span class="line">                actual = pl.getPiece(4)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testCountPieces</font>(self):</span>
<span class="line">                pl = PiecewiseLagrange(self.dataset, 4)</span>
<span class="line">                self.assertEquals (pl.getCountPieces(), 4)</span>
<span class="line"></span>
<span class="line"><font color="#ffff00">class</font> <font color="#00ffff">TestSpline</font>(unittest.TestCase):</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">setUp</font>(self):</span>
<span class="line">                self.dataset = [-1.0, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0]</span>
<span class="line">                self.s = Spline(self.dataset)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">tearDown</font>(self):</span>
<span class="line">                self.s = None</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInterpolation</font>(self):</span>
<span class="line">                <font color="#ffff00">for</font> x <font color="#ffff00">in</font> self.dataset:</span>
<span class="line">                        expected = givenFunction(x)</span>
<span class="line">                        actual = self.s.perform(x)</span>
<span class="line">                        self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testInsertPointX</font>(self):</span>
<span class="line">                actual = self.s.getControlPointListX()</span>
<span class="line">                self.assertEquals (actual, self.dataset)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testControlPointY</font>(self):</span>
<span class="line">                expected = []</span>
<span class="line">                <font color="#ffff00">for</font> x <font color="#ffff00">in</font> self.dataset:</span>
<span class="line">                        expected.append (givenFunction(x))</span>
<span class="line">                actual = self.s.getControlPointListY()</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testDeltaX</font>(self):</span>
<span class="line">                expected = -0.8 - (-1.0)</span>
<span class="line">                actual = self.s.deltaX(0)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testDeltaY</font>(self):</span>
<span class="line">                expected = givenFunction(self.dataset[1]) - givenFunction(self.dataset[0])</span>
<span class="line">                actual = self.s.deltaY(0)</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testEmptyMatrixA</font>(self):</span>
<span class="line">                actual = self.s._makeEmptyMatrix()</span>
<span class="line">                expected = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],</span>
<span class="line">                [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]</span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testMatrixA</font>(self):</span>
<span class="line">                actual = self.s._makeMatrixA()</span>
<span class="line"></span>
<span class="line">                <font color="#ffff00">for</font> i <font color="#ffff00">in</font> range(0,9):</span>
<span class="line">                        <font color="#ffff00">if</font> i-1 &gt;= 0:</span>
<span class="line">                                self.assertEquals (round(actual[i-1][i], 1), 0.2)</span>
<span class="line">                                self.assertEquals (round(actual[i][i-1], 1), 0.2)</span>
<span class="line">                        self.assertEquals (round(actual[i][i], 1), 0.8)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testMatrixB</font>(self):</span>
<span class="line">                actual = self.s._makeMatrixB()</span>
<span class="line"></span>
<span class="line">                expected = []</span>
<span class="line">                <font color="#ffff00">for</font> i <font color="#ffff00">in</font> range(1,10):</span>
<span class="line">                        expected.append([6 * ( self.deltaY(i)/self.deltaX(i) - self.deltaY(i-1)/self.deltaX(i-1) )])</span>
<span class="line"></span>
<span class="line">                self.assertEquals (actual, expected)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">deltaX</font>(self, i):</span>
<span class="line">                <font color="#ffff00">return</font> self.dataset[i+1] - self.dataset[i]</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">deltaY</font>(self, i):</span>
<span class="line">                <font color="#ffff00">return</font> givenFunction(self.dataset[i+1]) - givenFunction(self.dataset[i])</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testDoublePrimeY</font>(self):</span>
<span class="line">                actual = self.s._makeDoublePrimeY()</span>
<span class="line"></span>
<span class="line">                self.assertEquals (actual[0][0], 0.0)</span>
<span class="line">                self.assertEquals (actual[10][0], 0.0)</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testPerform</font>(self):</span>
<span class="line">                actual = self.s.perform(0)</span>
<span class="line">                <font color="#ffff00">print</font> actual</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testAi</font>(self):</span>
<span class="line">                actual = self.s.getAi(0)</span>
<span class="line">                <font color="#ffff00">print</font> actual</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testBi</font>(self):</span>
<span class="line">                actual = self.s.getBi(0)</span>
<span class="line">                <font color="#ffff00">print</font> actual</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testCi</font>(self):</span>
<span class="line">                actual = self.s.getCi(0)</span>
<span class="line">                <font color="#ffff00">print</font> actual</span>
<span class="line"></span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">testDi</font>(self):</span>
<span class="line">                actual = self.s.getDi(0)</span>
<span class="line">                <font color="#ffff00">print</font> actual</span>
<span class="line"></span>
<span class="line"><font color="#ffff00">class</font> <font color="#00ffff">TestApp</font>(wxApp):</span>
<span class="line">        <font color="#ffff00">def</font> <font color="#00ffff">OnInit</font>(self):</span>
<span class="line">                <font color="#ffff00">return</font> true</span>
<span class="line"></span>
<span class="line"><font color="#ffff00">if</font> __name__==&quot;<font color="#ff6060">__main__</font>&quot;:</span>
<span class="line">        app = TestApp(0)</span>
<span class="line"></span>
<span class="line">        unittest.main(argv=('','<font color="#ff6060">-v</font>'))</span>
<span class="line"></span>
<span class="line"></pre></span>
<span class="line"></body></span>
<span class="line"></html></span>
<span class="line"></span>
</pre>