Python numpy.testing.assert_almost_equal() Examples
The following are 30
code examples of numpy.testing.assert_almost_equal().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
numpy.testing
, or try the search function
.
Example #1
Source File: onnx_import_test.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 7 votes |
def test_broadcast(): """Test for broadcasting in onnx operators.""" input1 = np.random.rand(1, 3, 4, 5).astype("float32") input2 = np.random.rand(1, 5).astype("float32") inputs = [helper.make_tensor_value_info("input1", TensorProto.FLOAT, shape=(1, 3, 4, 5)), helper.make_tensor_value_info("input2", TensorProto.FLOAT, shape=(1, 5))] outputs = [helper.make_tensor_value_info("output", TensorProto.FLOAT, shape=(1, 3, 4, 5))] nodes = [helper.make_node("Add", ["input1", "input2"], ["output"])] graph = helper.make_graph(nodes, "bcast_test", inputs, outputs) bcast_model = helper.make_model(graph) bkd_rep = mxnet_backend.prepare(bcast_model) numpy_op = input1 + input2 output = bkd_rep.run([input1, input2]) npt.assert_almost_equal(output[0], numpy_op)
Example #2
Source File: test_convolution.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_conv(mode, method): reload(convolution) # time vector for stimulus (long) stim_dur = 0.5 # seconds tsample = 0.001 / 1000 t = np.arange(0, stim_dur, tsample) # stimulus (10 Hz anondic and cathodic pulse train) stim = np.zeros_like(t) stim[::1000] = 1 stim[100::1000] = -1 # kernel _, gg = gamma(1, 0.005, tsample) # make sure conv returns the same result as np.convolve for all modes: npconv = np.convolve(stim, gg, mode=mode) conv = convolution.conv(stim, gg, mode=mode, method=method) npt.assert_equal(conv.shape, npconv.shape) npt.assert_almost_equal(conv, npconv) with pytest.raises(ValueError): convolution.conv(gg, stim, mode="invalid") with pytest.raises(ValueError): convolution.conv(gg, stim, method="invalid")
Example #3
Source File: test_xrft.py From xrft with MIT License | 6 votes |
def test_cross_phase_2d(self, dask): Ny, Nx = (32, 16) x = np.linspace(0, 1, num=Nx, endpoint=False) y = np.ones(Ny) f = 6 phase_offset = np.pi/2 signal1 = np.cos(2*np.pi*f*x) # frequency = 1/(2*pi) signal2 = np.cos(2*np.pi*f*x - phase_offset) da1 = xr.DataArray(data=signal1*y[:,np.newaxis], name='a', dims=['y','x'], coords={'y':y, 'x':x}) da2 = xr.DataArray(data=signal2*y[:,np.newaxis], name='b', dims=['y','x'], coords={'y':y, 'x':x}) with pytest.raises(ValueError): xrft.cross_phase(da1, da2, dim=['y','x']) if dask: da1 = da1.chunk({'x': 16}) da2 = da2.chunk({'x': 16}) cp = xrft.cross_phase(da1, da2, dim=['x']) actual_phase_offset = cp.sel(freq_x=f).values npt.assert_almost_equal(actual_phase_offset, phase_offset)
Example #4
Source File: test_electrodes.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_SquareElectrode(): with pytest.raises(TypeError): SquareElectrode(0, 0, 0, [1, 2]) with pytest.raises(TypeError): SquareElectrode(0, np.array([0, 1]), 0, 1) # Invalid radius: with pytest.raises(ValueError): SquareElectrode(0, 0, 0, -5) # Check params: electrode = SquareElectrode(0, 1, 2, 100) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.a, 100) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False) # Plots: ax = electrode.plot() npt.assert_equal(len(ax.texts), 0) npt.assert_equal(len(ax.patches), 1) npt.assert_equal(isinstance(ax.patches[0], Rectangle), True)
Example #5
Source File: test_electrodes.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_PointSource(): electrode = PointSource(0, 1, 2) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.electric_potential(0, 1, 2, 1, 1), 1) npt.assert_almost_equal(electrode.electric_potential(0, 0, 0, 1, 1), 0.035, decimal=3) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False) # Plots: ax = electrode.plot() npt.assert_equal(len(ax.texts), 0) npt.assert_equal(len(ax.patches), 1) npt.assert_equal(isinstance(ax.patches[0], Circle), True)
Example #6
Source File: test_electrodes.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_HexElectrode(): with pytest.raises(TypeError): HexElectrode(0, 0, 0, [1, 2]) with pytest.raises(TypeError): HexElectrode(0, np.array([0, 1]), 0, 1) # Invalid radius: with pytest.raises(ValueError): HexElectrode(0, 0, 0, -5) # Check params: electrode = HexElectrode(0, 1, 2, 100) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.a, 100) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False) # Plots: ax = electrode.plot() npt.assert_equal(len(ax.texts), 0) npt.assert_equal(len(ax.patches), 1) npt.assert_equal(isinstance(ax.patches[0], RegularPolygon), True)
Example #7
Source File: test_prima.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_PhotovoltaicPixel(): electrode = PhotovoltaicPixel(0, 1, 2, 3, 4) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.r, 3) npt.assert_almost_equal(electrode.a, 4) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False) # Plots: ax = electrode.plot() npt.assert_equal(len(ax.texts), 0) npt.assert_equal(len(ax.patches), 2) npt.assert_equal(isinstance(ax.patches[0], RegularPolygon), True) npt.assert_equal(isinstance(ax.patches[1], Circle), True) PhotovoltaicPixel(0, 1, 2, 3, 4)
Example #8
Source File: test_xrft.py From xrft with MIT License | 6 votes |
def test_dft_real_2d(self): """ Test the real discrete Fourier transform function on one-dimensional data. Non-trivial because we need to keep only some of the negative frequencies. """ Nx, Ny = 16, 32 da = xr.DataArray(np.random.rand(Nx, Ny), dims=['x', 'y'], coords={'x': range(Nx), 'y': range(Ny)}) dx = float(da.x[1] - da.x[0]) dy = float(da.y[1] - da.y[0]) daft = xrft.dft(da, real='x') npt.assert_almost_equal(daft.values, np.fft.rfftn(da.transpose('y','x')).transpose()) npt.assert_almost_equal(daft.values, xrft.dft(da, dim=['y'], real='x')) actual_freq_x = daft.coords['freq_x'].values expected_freq_x = np.fft.rfftfreq(Nx, dx) npt.assert_almost_equal(actual_freq_x, expected_freq_x) actual_freq_y = daft.coords['freq_y'].values expected_freq_y = np.fft.fftfreq(Ny, dy) npt.assert_almost_equal(actual_freq_y, expected_freq_y)
Example #9
Source File: test_xrft.py From xrft with MIT License | 6 votes |
def test_dft_4d(self): """Test the discrete Fourier transform on 2D data""" N = 16 da = xr.DataArray(np.random.rand(N,N,N,N), dims=['time','z','y','x'], coords={'time':range(N),'z':range(N), 'y':range(N),'x':range(N)} ) with pytest.raises(ValueError): xrft.dft(da.chunk({'time':8}), dim=['y','x'], detrend='linear') ft = xrft.dft(da, shift=False) npt.assert_almost_equal(ft.values, np.fft.fftn(da.values)) da_prime = xrft.detrendn(da[:,0].values, [0,1,2]) # cubic detrend over time, y, and x npt.assert_almost_equal(xrft.dft(da[:,0].drop('z'), dim=['time','y','x'], shift=False, detrend='linear' ).values, np.fft.fftn(da_prime))
Example #10
Source File: onnx_import_test.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def test_lesser(): """Test for logical greater in onnx operators.""" input1 = np.random.rand(1, 3, 4, 5).astype("float32") input2 = np.random.rand(1, 5).astype("float32") inputs = [helper.make_tensor_value_info("input1", TensorProto.FLOAT, shape=(1, 3, 4, 5)), helper.make_tensor_value_info("input2", TensorProto.FLOAT, shape=(1, 5))] outputs = [helper.make_tensor_value_info("output", TensorProto.FLOAT, shape=(1, 3, 4, 5))] nodes = [helper.make_node("Less", ["input1", "input2"], ["output"])] graph = helper.make_graph(nodes, "lesser_test", inputs, outputs) greater_model = helper.make_model(graph) bkd_rep = mxnet_backend.prepare(greater_model) numpy_op = np.less(input1, input2).astype(np.float32) output = bkd_rep.run([input1, input2]) npt.assert_almost_equal(output[0], numpy_op)
Example #11
Source File: onnx_import_test.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def test_equal(): """Test for logical greater in onnx operators.""" input1 = np.random.rand(1, 3, 4, 5).astype("float32") input2 = np.random.rand(1, 5).astype("float32") inputs = [helper.make_tensor_value_info("input1", TensorProto.FLOAT, shape=(1, 3, 4, 5)), helper.make_tensor_value_info("input2", TensorProto.FLOAT, shape=(1, 5))] outputs = [helper.make_tensor_value_info("output", TensorProto.FLOAT, shape=(1, 3, 4, 5))] nodes = [helper.make_node("Equal", ["input1", "input2"], ["output"])] graph = helper.make_graph(nodes, "equal_test", inputs, outputs) greater_model = helper.make_model(graph) bkd_rep = mxnet_backend.prepare(greater_model) numpy_op = np.equal(input1, input2).astype(np.float32) output = bkd_rep.run([input1, input2]) npt.assert_almost_equal(output[0], numpy_op)
Example #12
Source File: test_bva.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_BVA24_stim(): # Assign a stimulus: implant = BVA24() implant.stim = {'1': 1} npt.assert_equal(implant.stim.electrodes, ['1']) npt.assert_equal(implant.stim.time, None) npt.assert_equal(implant.stim.data, [[1]]) # You can also assign the stimulus in the constructor: BVA24(stim={'1': 1}) npt.assert_equal(implant.stim.electrodes, ['1']) npt.assert_equal(implant.stim.time, None) npt.assert_equal(implant.stim.data, [[1]]) # Set a stimulus via array: implant = BVA24(stim=np.ones(35)) npt.assert_equal(implant.stim.shape, (35, 1)) npt.assert_almost_equal(implant.stim.data, 1)
Example #13
Source File: mxnet_export_test.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def test_square(): input1 = np.random.randint(1, 10, (2, 3)).astype("float32") ipsym = mx.sym.Variable("input1") square = mx.sym.square(data=ipsym) model = mx.mod.Module(symbol=square, data_names=['input1'], label_names=None) model.bind(for_training=False, data_shapes=[('input1', np.shape(input1))], label_shapes=None) model.init_params() args, auxs = model.get_params() params = {} params.update(args) params.update(auxs) converted_model = onnx_mxnet.export_model(square, params, [np.shape(input1)], np.float32, "square.onnx") sym, arg_params, aux_params = onnx_mxnet.import_model(converted_model) result = forward_pass(sym, arg_params, aux_params, ['input1'], input1) numpy_op = np.square(input1) npt.assert_almost_equal(result, numpy_op)
Example #14
Source File: tf_example_parser_test.py From vehicle_counting_tensorflow with MIT License | 6 votes |
def testBoundingBoxParser(self): bounding_boxes = np.array([[0.0, 0.5, 0.3], [0.0, 0.1, 0.6], [1.0, 0.6, 0.8], [1.0, 0.6, 0.7]]).transpose() features = { 'ymin': self._FloatFeature(bounding_boxes[:, 0]), 'xmin': self._FloatFeature(bounding_boxes[:, 1]), 'ymax': self._FloatFeature(bounding_boxes[:, 2]), 'xmax': self._FloatFeature(bounding_boxes[:, 3]) } example = tf.train.Example(features=tf.train.Features(feature=features)) parser = tf_example_parser.BoundingBoxParser('xmin', 'ymin', 'xmax', 'ymax') result = parser.parse(example) self.assertIsNotNone(result) np_testing.assert_almost_equal(result, bounding_boxes) parser = tf_example_parser.BoundingBoxParser('xmin', 'ymin', 'xmax', 'another_ymax') result = parser.parse(example) self.assertIsNone(result)
Example #15
Source File: test_base.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_Model_set_params(): # SpatialModel, but no TemporalModel: model = Model(spatial=ValidSpatialModel()) model.set_params({'xystep': 2.33}) npt.assert_almost_equal(model.xystep, 2.33) npt.assert_almost_equal(model.spatial.xystep, 2.33) # TemporalModel, but no SpatialModel: model = Model(temporal=ValidTemporalModel()) model.set_params({'dt': 2.33}) npt.assert_almost_equal(model.dt, 2.33) npt.assert_almost_equal(model.temporal.dt, 2.33) # SpatialModel and TemporalModel: model = Model(spatial=ValidSpatialModel(), temporal=ValidTemporalModel()) # Setting both using the convenience function: model.set_params({'xystep': 5, 'dt': 2.33}) npt.assert_almost_equal(model.xystep, 5) npt.assert_almost_equal(model.spatial.xystep, 5) npt.assert_equal(hasattr(model.temporal, 'xystep'), False) npt.assert_almost_equal(model.dt, 2.33) npt.assert_almost_equal(model.temporal.dt, 2.33) npt.assert_equal(hasattr(model.spatial, 'dt'), False)
Example #16
Source File: test_geometry.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_Watson2014Transform(): trafo = Watson2014Transform() # Below 15mm eccentricity, relationship is linear with slope 3.731 npt.assert_equal(trafo.ret2dva(0.0), 0.0) for sign in [-1, 1]: for exp in [2, 3, 4]: ret = sign * 10 ** exp # mm dva = 3.731 * sign * 10 ** (exp - 3) # dva npt.assert_almost_equal(trafo.ret2dva(ret), dva, decimal=3 - exp) # adjust precision # Below 50deg eccentricity, relationship is linear with slope 0.268 npt.assert_equal(trafo.dva2ret(0.0), 0.0) for sign in [-1, 1]: for exp in [-2, -1, 0]: dva = sign * 10 ** exp # deg ret = 0.268 * sign * 10 ** (exp + 3) # mm npt.assert_almost_equal(trafo.dva2ret(dva), ret, decimal=-exp) # adjust precision
Example #17
Source File: test_geometry.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_Grid2D(x_range, y_range): grid = Grid2D(x_range, y_range, step=1, grid_type='rectangular') npt.assert_equal(grid.x_range, x_range) npt.assert_equal(grid.y_range, y_range) npt.assert_equal(grid.step, 1) npt.assert_equal(grid.type, 'rectangular') # Grid is created with indexing='xy', so check coordinates: npt.assert_equal(grid.x.shape, (np.abs(np.diff(y_range)) + 1, np.abs(np.diff(x_range)) + 1)) npt.assert_equal(grid.x.shape, grid.y.shape) npt.assert_equal(grid.x.shape, grid.shape) npt.assert_almost_equal(grid.x[0, 0], x_range[0]) npt.assert_almost_equal(grid.x[0, -1], x_range[1]) npt.assert_almost_equal(grid.x[-1, 0], x_range[0]) npt.assert_almost_equal(grid.x[-1, -1], x_range[1]) npt.assert_almost_equal(grid.y[0, 0], y_range[0]) npt.assert_almost_equal(grid.y[0, -1], y_range[0]) npt.assert_almost_equal(grid.y[-1, 0], y_range[1]) npt.assert_almost_equal(grid.y[-1, -1], y_range[1])
Example #18
Source File: test_images.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_ImageStimulus_scale(): # Create a horizontal bar: fname = 'test.png' shape = (5, 5) ndarray = np.zeros(shape, dtype=np.uint8) ndarray[2, :] = 255 imsave(fname, ndarray) # Scale phosphene: stim = ImageStimulus(fname) npt.assert_almost_equal(stim.data, stim.scale(1).data) npt.assert_almost_equal(stim.scale(0.1)[12], 1) npt.assert_almost_equal(stim.scale(0.1)[:12], 0) npt.assert_almost_equal(stim.scale(0.1)[13:], 0) with pytest.raises(ValueError): stim.scale(0) os.remove(fname)
Example #19
Source File: test_beyeler2019.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_AxonMapModel_calc_axon_contribution(engine): model = AxonMapModel(xystep=2, engine=engine, n_axons=10, xrange=(-20, 20), yrange=(-15, 15), axons_range=(-30, 30)) model.build() xyret = np.column_stack((model.spatial.grid.xret.ravel(), model.spatial.grid.yret.ravel())) bundles = model.spatial.grow_axon_bundles() axons = model.spatial.find_closest_axon(bundles) contrib = model.spatial.calc_axon_contribution(axons) # Check lambda math: for ax, xy in zip(contrib, xyret): axon = np.insert(ax, 0, list(xy) + [0], axis=0) d2 = np.cumsum(np.diff(axon[:, 0], axis=0) ** 2 + np.diff(axon[:, 1], axis=0) ** 2) sensitivity = np.exp(-d2 / (2.0 * model.spatial.axlambda ** 2)) npt.assert_almost_equal(sensitivity, ax[:, 2])
Example #20
Source File: test_images.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_ImageStimulus_encode(): stim = ImageStimulus(np.random.rand(4, 5)) # Amplitude encoding in default range: enc = stim.encode() npt.assert_almost_equal(enc.time[-1], 500) npt.assert_almost_equal(enc.data.max(axis=1).min(), 0) npt.assert_almost_equal(enc.data.max(axis=1).max(), 50) # Amplitude encoding in custom range: enc = stim.encode(amp_range=(2, 43)) npt.assert_almost_equal(enc.time[-1], 500) npt.assert_almost_equal(enc.data.max(axis=1).min(), 2) npt.assert_almost_equal(enc.data.max(axis=1).max(), 43) with pytest.raises(TypeError): stim.encode(pulse={'invalid': 1}) with pytest.raises(ValueError): stim.encode(pulse=LogoUCSB())
Example #21
Source File: test_xrft.py From xrft with MIT License | 6 votes |
def test_dft_2d(self): """Test the discrete Fourier transform on 2D data""" N = 16 da = xr.DataArray(np.random.rand(N,N), dims=['x','y'], coords={'x':range(N),'y':range(N)} ) ft = xrft.dft(da, shift=False) npt.assert_almost_equal(ft.values, np.fft.fftn(da.values)) ft = xrft.dft(da, shift=False, window=True, detrend='constant') dim = da.dims window = np.hanning(N) * np.hanning(N)[:, np.newaxis] da_prime = (da - da.mean(dim=dim)).values npt.assert_almost_equal(ft.values, np.fft.fftn(da_prime*window)) da = xr.DataArray(np.random.rand(N,N), dims=['x','y'], coords={'x':range(N,0,-1),'y':range(N,0,-1)} ) assert (xrft.power_spectrum(da, shift=False, density=True) >= 0.).all()
Example #22
Source File: test_base.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_gamma(): tsample = 0.005 / 1000 with pytest.raises(ValueError): t, g = gamma(0, 0.1, tsample) with pytest.raises(ValueError): t, g = gamma(2, -0.1, tsample) with pytest.raises(ValueError): t, g = gamma(2, 0.1, -tsample) for tau in [0.001, 0.01, 0.1]: for n in [1, 2, 5]: t, g = gamma(n, tau, tsample) npt.assert_equal(np.arange(0, t[-1] + tsample / 2.0, tsample), t) if n > 1: npt.assert_equal(g[0], 0.0) # Make sure area under the curve is normalized npt.assert_almost_equal(np.trapz(np.abs(g), dx=tsample), 1.0, decimal=2) # Make sure peak sits correctly npt.assert_almost_equal(g.argmax() * tsample, tau * (n - 1))
Example #23
Source File: test_geometry.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_Grid2D_make_rectangular_grid(): # Range is a multiple of step size: grid = Grid2D((-1, 1), (0, 0), step=1) npt.assert_almost_equal(grid.x, [[-1, 0, 1]]) npt.assert_almost_equal(grid.y, [[0, 0, 0]]) for mlt in [0.01, 0.1, 1, 10, 100]: grid = Grid2D((-10 * mlt, 10 * mlt), (-10 * mlt, 10 * mlt), step=5 * mlt) npt.assert_almost_equal(grid.x[0], mlt * np.array([-10, -5, 0, 5, 10])) npt.assert_almost_equal(grid.y[:, 0], mlt * np.array([-10, -5, 0, 5, 10])) # Another way to verify this is to manually check the step size: for step in [0.25, 0.5, 1, 2]: grid = Grid2D((-20, 20), (-40, 40), step=step) npt.assert_equal(len(np.unique(np.diff(grid.x[0, :]))), 1) npt.assert_equal(len(np.unique(np.diff(grid.y[:, 0]))), 1) npt.assert_almost_equal(np.unique(np.diff(grid.x[0, :]))[0], step) npt.assert_almost_equal(np.unique(np.diff(grid.y[:, 0]))[0], step) # Step size just a little too small/big to fit into range. In this case, # the step size gets adjusted so that the range is as specified by the # user: grid = Grid2D((-1, 1), (0, 0), step=0.33) npt.assert_almost_equal(grid.x, [[-1, -2 / 3, -1 / 3, 0, 1 / 3, 2 / 3, 1]]) npt.assert_almost_equal(grid.y, [[0, 0, 0, 0, 0, 0, 0]]) grid = Grid2D((-1, 1), (0, 0), step=0.34) npt.assert_almost_equal(grid.x, [[-1, -2 / 3, -1 / 3, 0, 1 / 3, 2 / 3, 1]]) npt.assert_almost_equal(grid.y, [[0, 0, 0, 0, 0, 0, 0]]) # Different step size for x and y: grid = Grid2D((-1, 1), (0, 0), step=(0.5, 1)) npt.assert_almost_equal(grid.x, [[-1, -0.5, 0, 0.5, 1]]) npt.assert_almost_equal(grid.y, [[0, 0, 0, 0, 0]]) grid = Grid2D((0, 0), (-1, 1), step=(2, 0.5)) npt.assert_almost_equal(grid.x, [[0], [0], [0], [0], [0]]) npt.assert_almost_equal(grid.y[:, 0], [-1, -0.5, 0, 0.5, 1]) # Same step size, but given explicitly: npt.assert_almost_equal(Grid2D((-3, 3), (8, 12), step=0.123).x, Grid2D((-3, 3), (8, 12), step=(0.123, 0.123)).x)
Example #24
Source File: test_electrodes.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_Electrode(): electrode = ValidElectrode(0, 1, 2) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.electric_potential(0, 1, 2), 0) with pytest.raises(TypeError): ValidElectrode([0], 1, 2) with pytest.raises(TypeError): ValidElectrode(0, np.array([1, 2]), 2) with pytest.raises(TypeError): ValidElectrode(0, 1, [2, 3]) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False)
Example #25
Source File: test_beyeler2019.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_AxonMapModel_calc_bundle_tangent(engine): model = AxonMapModel(xystep=5, engine=engine, n_axons=500, xrange=(-20, 20), yrange=(-15, 15), n_ax_segments=500, axons_range=(-180, 180), ax_segments_range=(3, 50)) npt.assert_almost_equal(model.spatial.calc_bundle_tangent(0, 0), 0.4819, decimal=3) npt.assert_almost_equal(model.spatial.calc_bundle_tangent(0, 1000), -0.5532, decimal=3) with pytest.raises(TypeError): model.spatial.calc_bundle_tangent([0], 1000) with pytest.raises(TypeError): model.spatial.calc_bundle_tangent(0, [1000])
Example #26
Source File: test_geometry.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_cart2pol(): npt.assert_almost_equal(cart2pol(0, 0), (0, 0)) npt.assert_almost_equal(cart2pol(10, 0), (0, 10)) npt.assert_almost_equal(cart2pol(3, 4), (np.arctan(4 / 3.0), 5)) npt.assert_almost_equal(cart2pol(4, 3), (np.arctan(3 / 4.0), 5))
Example #27
Source File: test_geometry.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_Curcio1990Transform(): # Curcio1990 uses a linear dva2ret conversion factor: for factor in [0.0, 1.0, 2.0]: npt.assert_almost_equal(Curcio1990Transform.dva2ret(factor), 280.0 * factor) for factor in [0.0, 1.0, 2.0]: npt.assert_almost_equal(Curcio1990Transform.ret2dva(280.0 * factor), factor)
Example #28
Source File: test_geometry.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_RetinalCoordTransform(): npt.assert_almost_equal(ValidCoordTransform.dva2ret(1.1), 1.1) npt.assert_almost_equal(ValidCoordTransform.ret2dva(1.1), 1.1)
Example #29
Source File: test_base.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_Frozen(): # Cannot set attributes outside constructor: with pytest.raises(FreezeError): frozen = Frozen() frozen.newvar = 0 # Setting attributes in constructor is fine: frozen_child = FrozenChild(1) npt.assert_almost_equal(frozen_child.a, 1) npt.assert_almost_equal(frozen_child.b, 0) # But not outside constructor: with pytest.raises(FreezeError): frozen_child.c = 3
Example #30
Source File: test_xrft.py From xrft with MIT License | 5 votes |
def test_dft_3d_dask(self, dask): """Test the discrete Fourier transform on 3D dask array data""" N=16 da = xr.DataArray(np.random.rand(N,N,N), dims=['time','x','y'], coords={'time':range(N),'x':range(N), 'y':range(N)} ) if dask: da = da.chunk({'time': 1}) daft = xrft.dft(da, dim=['x','y'], shift=False) npt.assert_almost_equal(daft.values, np.fft.fftn(da.chunk({'time': 1}).values, axes=[1,2]) ) da = da.chunk({'x': 1}) with pytest.raises(ValueError): xrft.dft(da, dim=['x']) with pytest.raises(ValueError): xrft.dft(da, dim='x') da = da.chunk({'time':N}) daft = xrft.dft(da, dim=['time'], shift=False, detrend='linear') da_prime = sps.detrend(da, axis=0) npt.assert_almost_equal(daft.values, np.fft.fftn(da_prime, axes=[0]) ) npt.assert_array_equal(daft.values, xrft.dft(da, dim='time', shift=False, detrend='linear') )