def METHOD_NAME(self, expected, bc, plot=False):
    n = 11
    x =  [(float(n-i)*(-1.0)+float(i-1))/float(n-1) for i in range(n)]
    y =  [self.runge(i) for i in x]
    # just for plotting
    real=[];newx=[];found=[]
    if not bc:
        leftBound = 0.0 ;rightBound = 0.0
    elif bc == 1:
         leftBound = self.dRunge(x[0])
         rightBound = self.dRunge(x[-1])
    else: # bc == 2
         leftBound = self.ddRunge(x[0])
         rightBound = self.ddRunge(x[-1])
    spline = CubicSpline(xPoints=x,yPoints=y,
                         leftBoundaryFlag = bc,
                         leftBoundaryValue = leftBound,
                         rightBoundaryFlag = bc,
                         rightBoundaryValue = rightBound)
    xval = 0
    k=0
    for i in range(n+1):
        if not i: jhi = 1
        else: jhi = 2
        for j in range(1, jhi+1):
            if not i: xval = x[0] - 1.0
            elif i<n:
                xval = (float(jhi-j+1)*x[i-1]+float(j-1)*x[i])/float(jhi)
            else:
                if j==1: xval=x[n-1]
                else: xval=x[n-1]+1.0
            yval = spline(xval)[0]
            self.assertAlmostEqual(expected[k], yval, 5e-6)
            newx.append(xval)
            found.append(yval)
            real.append(self.runge(xval))
            k+=1
    if plot:
        from pylab import plot, show, legend
        plot(newx, found, label='found')
        plot(newx, expected, label='expected')
        plot(newx, real, label='real')
        legend()
        show()