Ejemplo n.º 1
0
 def testConstantPatch_IOConsistency(self, NTESTS = 100):
     np.random.seed(1234)
     for testIdx in range(NTESTS):
         Pts = np.ones((16, 3)) * np.random.rand(1, 1)
         patch = BicubicPatch(Pts)
         OutPtsTuple = patch.get_samples((4, 4))
         
         OutPts = np.transpose([OutPtsTuple[0].flatten(),
                   OutPtsTuple[1].flatten(),
                   OutPtsTuple[2].flatten()
                  ])
         nptest.assert_array_almost_equal(Pts, OutPts)
Ejemplo n.º 2
0
 def testZPatch_IOConsistency(self, NTESTS = 100):
     np.random.seed(1234)
     for testIdx in range(NTESTS):
         [X, Y] = np.meshgrid(range(4), range(4))
         Z = np.random.rand(4, 4)
         Pts = np.transpose([X.flatten(), Y.flatten(), Z.flatten()])
         patch = BicubicPatch(Pts)
         OutPtsTuple = patch.get_samples((4, 4))
         
         OutPts = np.transpose([OutPtsTuple[0].flatten(),
                   OutPtsTuple[1].flatten(),
                   OutPtsTuple[2].flatten()
                  ])
         nptest.assert_array_almost_equal(Pts, OutPts)
Ejemplo n.º 3
0
    def testZSurface(self):
        np.random.seed(1234)
        data_points = np.zeros((16, 3))
        data_points[:,0] = np.transpose([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3])
        data_points[:,1] = np.transpose([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3])
        data_points[:,2] = np.transpose([0, -2, 2, -3, 0, -2, 2, -3, 0, -2, 2, -3, 0, -2, 2, -3]) 
        patch = BicubicPatch(data_points)
        OutPtsTuple = patch.get_samples((10, 10))
        
        OutPts = np.transpose([OutPtsTuple[0].flatten(),
                  OutPtsTuple[1].flatten(),
                  OutPtsTuple[2].flatten()
                 ])
        
#        #print(list(OutPts))
#        for l in OutPts:
#            print(str(list(l.flatten())) + ',')
#            #sys.stdout.write('[' + ','.join(str(l)) + '],')
        res_expected = [[0.0, 0.0, 0.0],
                        [0.0, 0.33333333333333331, -2.2592592592592591],
                        [0.0, 0.66666666666666663, -2.7407407407407405],
                        [0.0, 1.0, -2.0],
                        [0.0, 1.3333333333333333, -0.59259259259259522],
                        [0.0, 1.6666666666666667, 0.92592592592592737],
                        [0.0, 2.0, 2.0],
                        [0.0, 2.3333333333333335, 2.0740740740740691],
                        [0.0, 2.6666666666666665, 0.59259259259258101],
                        [0.0, 3.0, -3.0],
                        [0.33333333333333331, 0.0, 0.0],
                        [0.33333333333333331, 0.33333333333333331, -2.2592592592592591],
                        [0.33333333333333331, 0.66666666666666663, -2.7407407407407409],
                        [0.33333333333333331, 1.0, -2.0000000000000004],
                        [0.33333333333333331, 1.3333333333333333, -0.59259259259259578],
                        [0.33333333333333337, 1.6666666666666667, 0.92592592592592649],
                        [0.33333333333333337, 2.0, 1.9999999999999989],
                        [0.33333333333333337, 2.3333333333333335, 2.0740740740740673],
                        [0.33333333333333343, 2.6666666666666665, 0.59259259259257879],
                        [0.33333333333333348, 3.0, -3.0000000000000031],
                        [0.66666666666666663, 0.0, 0.0],
                        [0.66666666666666663, 0.33333333333333331, -2.2592592592592595],
                        [0.66666666666666663, 0.66666666666666663, -2.7407407407407409],
                        [0.66666666666666674, 1.0, -2.0000000000000009],
                        [0.66666666666666674, 1.3333333333333333, -0.59259259259259633],
                        [0.66666666666666674, 1.6666666666666667, 0.92592592592592571],
                        [0.66666666666666685, 2.0, 1.9999999999999976],
                        [0.66666666666666685, 2.3333333333333335, 2.074074074074066],
                        [0.66666666666666696, 2.6666666666666665, 0.59259259259257657],
                        [0.66666666666666718, 3.0, -3.0000000000000058],
                        [1.0, 0.0, 0.0],
                        [1.0, 0.33333333333333337, -2.2592592592592595],
                        [1.0, 0.66666666666666674, -2.7407407407407414],
                        [1.0000000000000002, 1.0, -2.0000000000000013],
                        [1.0, 1.3333333333333335, -0.592592592592597],
                        [1.0000000000000002, 1.666666666666667, 0.92592592592592482],
                        [1.0000000000000002, 2.0, 1.9999999999999964],
                        [1.0000000000000004, 2.3333333333333335, 2.0740740740740642],
                        [1.0000000000000007, 2.666666666666667, 0.59259259259257435],
                        [1.0000000000000009, 3.0000000000000004, -3.0000000000000089],
                        [1.3333333333333333, 0.0, 0.0],
                        [1.3333333333333333, 0.33333333333333337, -2.2592592592592595],
                        [1.3333333333333335, 0.66666666666666674, -2.7407407407407418],
                        [1.3333333333333335, 1.0000000000000002, -2.0000000000000018],
                        [1.3333333333333335, 1.3333333333333335, -0.59259259259259767],
                        [1.3333333333333337, 1.666666666666667, 0.92592592592592393],
                        [1.3333333333333337, 2.0000000000000004, 1.9999999999999953],
                        [1.3333333333333339, 2.3333333333333339, 2.0740740740740624],
                        [1.3333333333333341, 2.666666666666667, 0.59259259259257191],
                        [1.3333333333333346, 3.0000000000000004, -3.0000000000000124],
                        [1.6666666666666667, 0.0, 0.0],
                        [1.6666666666666667, 0.33333333333333337, -2.25925925925926],
                        [1.666666666666667, 0.66666666666666674, -2.7407407407407423],
                        [1.666666666666667, 1.0000000000000002, -2.0000000000000022],
                        [1.6666666666666672, 1.3333333333333335, -0.59259259259259833],
                        [1.6666666666666672, 1.6666666666666672, 0.92592592592592304],
                        [1.6666666666666674, 2.0000000000000004, 1.999999999999994],
                        [1.6666666666666676, 2.3333333333333339, 2.0740740740740606],
                        [1.6666666666666681, 2.666666666666667, 0.59259259259256947],
                        [1.6666666666666683, 3.0000000000000004, -3.000000000000016],
                        [2.0, 0.0, 0.0],
                        [2.0, 0.33333333333333343, -2.2592592592592604],
                        [2.0, 0.66666666666666685, -2.7407407407407427],
                        [2.0, 1.0000000000000004, -2.0000000000000031],
                        [2.0, 1.3333333333333337, -0.59259259259259922],
                        [2.0000000000000004, 1.6666666666666674, 0.92592592592592216],
                        [2.0000000000000009, 2.0000000000000009, 1.9999999999999929],
                        [2.0000000000000009, 2.3333333333333344, 2.0740740740740589],
                        [2.0000000000000013, 2.6666666666666674, 0.5925925925925668],
                        [2.0000000000000018, 3.0000000000000009, -3.00000000000002],
                        [2.3333333333333335, 0.0, 0.0],
                        [2.3333333333333335, 0.33333333333333348, -2.2592592592592613],
                        [2.3333333333333335, 0.66666666666666696, -2.7407407407407436],
                        [2.3333333333333339, 1.0000000000000004, -2.000000000000004],
                        [2.3333333333333339, 1.3333333333333339, -0.5925925925926],
                        [2.3333333333333339, 1.6666666666666676, 0.92592592592592127],
                        [2.3333333333333339, 2.0000000000000009, 1.9999999999999918],
                        [2.3333333333333344, 2.3333333333333348, 2.0740740740740571],
                        [2.3333333333333344, 2.6666666666666679, 0.59259259259256403],
                        [2.3333333333333353, 3.0000000000000013, -3.0000000000000244],
                        [2.6666666666666665, 0.0, 0.0],
                        [2.6666666666666665, 0.33333333333333354, -2.2592592592592617],
                        [2.6666666666666665, 0.66666666666666707, -2.7407407407407449],
                        [2.6666666666666665, 1.0000000000000007, -2.0000000000000049],
                        [2.6666666666666665, 1.3333333333333341, -0.592592592592601],
                        [2.6666666666666665, 1.6666666666666679, 0.92592592592592027],
                        [2.666666666666667, 2.0000000000000013, 1.9999999999999905],
                        [2.6666666666666674, 2.3333333333333353, 2.0740740740740553],
                        [2.6666666666666674, 2.6666666666666683, 0.59259259259256103],
                        [2.6666666666666674, 3.0000000000000022, -3.0000000000000293],
                        [3.0, 0.0, 0.0],
                        [3.0, 0.33333333333333359, -2.2592592592592626],
                        [3.0, 0.66666666666666718, -2.7407407407407458],
                        [3.0, 1.0000000000000009, -2.0000000000000062],
                        [3.0, 1.3333333333333344, -0.59259259259260211],
                        [3.0, 1.6666666666666683, 0.92592592592591927],
                        [3.0, 2.0000000000000018, 1.9999999999999893],
                        [3.0, 2.3333333333333357, 2.0740740740740535],
                        [3.0, 2.6666666666666687, 0.5925925925925577],
                        [3.0, 3.0000000000000027, -3.0000000000000351]]  
                
        nptest.assert_array_almost_equal(res_expected, OutPts)        
Ejemplo n.º 4
0
 def testYSurface(self):
     np.random.seed(1234)
     data_points = np.zeros((16, 3))
     data_points[:,0] = np.transpose([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3])
     data_points[:,1] = np.transpose([0, -2, 2, -3, 0, -2, 2, -3, 0, -2, 2, -3, 0, -2, 2, -3]) 
     data_points[:,2] = np.transpose([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3])
     patch = BicubicPatch(data_points)
     OutPtsTuple = patch.get_samples((10, 10))
     
     OutPts = np.transpose([OutPtsTuple[0].flatten(),
               OutPtsTuple[1].flatten(),
               OutPtsTuple[2].flatten()
              ])
     
     res_expected = [[0.0, 0.0, 0.0],
                     [0.0, -2.2592592592592591, 0.33333333333333331],
                     [0.0, -2.7407407407407405, 0.66666666666666663],
                     [0.0, -2.0, 1.0],
                     [0.0, -0.59259259259259522, 1.3333333333333333],
                     [0.0, 0.92592592592592737, 1.6666666666666667],
                     [0.0, 2.0, 2.0],
                     [0.0, 2.0740740740740691, 2.3333333333333335],
                     [0.0, 0.59259259259258101, 2.6666666666666665],
                     [0.0, -3.0, 3.0],
                     [0.33333333333333331, 0.0, 0.0],
                     [0.33333333333333331, -2.2592592592592591, 0.33333333333333331],
                     [0.33333333333333331, -2.7407407407407409, 0.66666666666666663],
                     [0.33333333333333331, -2.0000000000000004, 1.0],
                     [0.33333333333333331, -0.59259259259259578, 1.3333333333333333],
                     [0.33333333333333337, 0.92592592592592649, 1.6666666666666667],
                     [0.33333333333333337, 1.9999999999999989, 2.0],
                     [0.33333333333333337, 2.0740740740740673, 2.3333333333333335],
                     [0.33333333333333343, 0.59259259259257879, 2.6666666666666665],
                     [0.33333333333333348, -3.0000000000000031, 3.0],
                     [0.66666666666666663, 0.0, 0.0],
                     [0.66666666666666663, -2.2592592592592595, 0.33333333333333331],
                     [0.66666666666666663, -2.7407407407407409, 0.66666666666666663],
                     [0.66666666666666674, -2.0000000000000009, 1.0],
                     [0.66666666666666674, -0.59259259259259633, 1.3333333333333333],
                     [0.66666666666666674, 0.92592592592592571, 1.6666666666666667],
                     [0.66666666666666685, 1.9999999999999976, 2.0],
                     [0.66666666666666685, 2.074074074074066, 2.3333333333333335],
                     [0.66666666666666696, 0.59259259259257657, 2.6666666666666665],
                     [0.66666666666666718, -3.0000000000000058, 3.0],
                     [1.0, 0.0, 0.0],
                     [1.0, -2.2592592592592595, 0.33333333333333337],
                     [1.0, -2.7407407407407414, 0.66666666666666674],
                     [1.0000000000000002, -2.0000000000000013, 1.0],
                     [1.0, -0.592592592592597, 1.3333333333333335],
                     [1.0000000000000002, 0.92592592592592482, 1.666666666666667],
                     [1.0000000000000002, 1.9999999999999964, 2.0],
                     [1.0000000000000004, 2.0740740740740642, 2.3333333333333335],
                     [1.0000000000000007, 0.59259259259257435, 2.666666666666667],
                     [1.0000000000000009, -3.0000000000000089, 3.0000000000000004],
                     [1.3333333333333333, 0.0, 0.0],
                     [1.3333333333333333, -2.2592592592592595, 0.33333333333333337],
                     [1.3333333333333335, -2.7407407407407418, 0.66666666666666674],
                     [1.3333333333333335, -2.0000000000000018, 1.0000000000000002],
                     [1.3333333333333335, -0.59259259259259767, 1.3333333333333335],
                     [1.3333333333333337, 0.92592592592592393, 1.666666666666667],
                     [1.3333333333333337, 1.9999999999999953, 2.0000000000000004],
                     [1.3333333333333339, 2.0740740740740624, 2.3333333333333339],
                     [1.3333333333333341, 0.59259259259257191, 2.666666666666667],
                     [1.3333333333333346, -3.0000000000000124, 3.0000000000000004],
                     [1.6666666666666667, 0.0, 0.0],
                     [1.6666666666666667, -2.25925925925926, 0.33333333333333337],
                     [1.666666666666667, -2.7407407407407423, 0.66666666666666674],
                     [1.666666666666667, -2.0000000000000022, 1.0000000000000002],
                     [1.6666666666666672, -0.59259259259259833, 1.3333333333333335],
                     [1.6666666666666672, 0.92592592592592304, 1.6666666666666672],
                     [1.6666666666666674, 1.999999999999994, 2.0000000000000004],
                     [1.6666666666666676, 2.0740740740740606, 2.3333333333333339],
                     [1.6666666666666681, 0.59259259259256947, 2.666666666666667],
                     [1.6666666666666683, -3.000000000000016, 3.0000000000000004],
                     [2.0, 0.0, 0.0],
                     [2.0, -2.2592592592592604, 0.33333333333333343],
                     [2.0, -2.7407407407407427, 0.66666666666666685],
                     [2.0, -2.0000000000000031, 1.0000000000000004],
                     [2.0, -0.59259259259259922, 1.3333333333333337],
                     [2.0000000000000004, 0.92592592592592216, 1.6666666666666674],
                     [2.0000000000000009, 1.9999999999999929, 2.0000000000000009],
                     [2.0000000000000009, 2.0740740740740589, 2.3333333333333344],
                     [2.0000000000000013, 0.5925925925925668, 2.6666666666666674],
                     [2.0000000000000018, -3.00000000000002, 3.0000000000000009],
                     [2.3333333333333335, 0.0, 0.0],
                     [2.3333333333333335, -2.2592592592592613, 0.33333333333333348],
                     [2.3333333333333335, -2.7407407407407436, 0.66666666666666696],
                     [2.3333333333333339, -2.000000000000004, 1.0000000000000004],
                     [2.3333333333333339, -0.5925925925926, 1.3333333333333339],
                     [2.3333333333333339, 0.92592592592592127, 1.6666666666666676],
                     [2.3333333333333339, 1.9999999999999918, 2.0000000000000009],
                     [2.3333333333333344, 2.0740740740740571, 2.3333333333333348],
                     [2.3333333333333344, 0.59259259259256403, 2.6666666666666679],
                     [2.3333333333333353, -3.0000000000000244, 3.0000000000000013],
                     [2.6666666666666665, 0.0, 0.0],
                     [2.6666666666666665, -2.2592592592592617, 0.33333333333333354],
                     [2.6666666666666665, -2.7407407407407449, 0.66666666666666707],
                     [2.6666666666666665, -2.0000000000000049, 1.0000000000000007],
                     [2.6666666666666665, -0.592592592592601, 1.3333333333333341],
                     [2.6666666666666665, 0.92592592592592027, 1.6666666666666679],
                     [2.666666666666667, 1.9999999999999905, 2.0000000000000013],
                     [2.6666666666666674, 2.0740740740740553, 2.3333333333333353],
                     [2.6666666666666674, 0.59259259259256103, 2.6666666666666683],
                     [2.6666666666666674, -3.0000000000000293, 3.0000000000000022],
                     [3.0, 0.0, 0.0],
                     [3.0, -2.2592592592592626, 0.33333333333333359],
                     [3.0, -2.7407407407407458, 0.66666666666666718],
                     [3.0, -2.0000000000000062, 1.0000000000000009],
                     [3.0, -0.59259259259260211, 1.3333333333333344],
                     [3.0, 0.92592592592591927, 1.6666666666666683],
                     [3.0, 1.9999999999999893, 2.0000000000000018],
                     [3.0, 2.0740740740740535, 2.3333333333333357],
                     [3.0, 0.5925925925925577, 2.6666666666666687],
                     [3.0, -3.0000000000000351, 3.0000000000000027]]
     nptest.assert_array_almost_equal(res_expected, OutPts)