def test_nonuniform3(self): x = np.array((1, 2, 3, 4)) y = -2 * x surf = NonuniformLineScan(x, y) self.assertFalse(surf.is_uniform) self.assertEqual(surf.dim, 1) der = surf.derivative(n=1) assert_array_equal(der, [-2, -2, -2]) der = surf.derivative(n=2) assert_array_equal(der, [0, 0]) # # Similar with detrend which substracts mean value # surf2 = surf.detrend(detrend_mode='center') self.assertFalse(surf2.is_uniform) self.assertEqual(surf.dim, 1) der = surf2.derivative(n=1) assert_array_equal(der, [-2, -2, -2]) # # Similar with detrend which eliminates slope # surf3 = surf.detrend(detrend_mode='height') self.assertFalse(surf3.is_uniform) self.assertEqual(surf.dim, 1) der = surf3.derivative(n=1) np.testing.assert_allclose(der, [0, 0, 0], atol=1e-14) np.testing.assert_allclose(surf3.heights(), np.zeros(y.shape), atol=1e-14) p = surf3.positions_and_heights() assert_array_equal(p[0], x) np.testing.assert_allclose(p[1], np.zeros(y.shape), atol=1e-14)
def test_nonuniform2(self): x = np.array((1, 2, 3)) y = 2 * x surf = NonuniformLineScan(x, y) self.assertFalse(surf.is_uniform) self.assertEqual(surf.dim, 1) der = surf.derivative(n=1) assert_array_equal(der, [2, 2]) der = surf.derivative(n=2) assert_array_equal(der, [0]) surf = surf.detrend(detrend_mode='height') self.assertFalse(surf.is_uniform) self.assertEqual(surf.dim, 1) der = surf.derivative(n=1) assert_array_equal(der, [0, 0]) assert_array_equal(surf.heights(), np.zeros(y.shape)) p = surf.positions_and_heights() assert_array_equal(p[0], x) assert_array_equal(p[1], np.zeros(y.shape))