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)
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)
# -*- coding: utf-8 -*- """ BicubicPatchRunSol.py """ import BicubicPatch if __name__ == '__main__': BicubicPatch.main()
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)
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)