Beispiel #1
0
    def test_to_ndarray(sut, shape_full, dtype):
        # Arrange
        sut_data, data = generate_data(sut, shape_full, dtype)

        # Act
        actual = sut.to_ndarray(sut_data)
        expected = backend.to_ndarray(data)

        # Assert
        np.testing.assert_array_equal(actual, expected)
Beispiel #2
0
    def test_from_ndarray(sut, dtype_full, shape_full):
        # Arrange
        ndarray = np.empty(shape=shape_full, dtype=dtype_full)

        try:
            # Act
            actual = sut.from_ndarray(ndarray)
            expected = backend.from_ndarray(ndarray)

            # Assert
            np.testing.assert_array_equal(sut.to_ndarray(actual),
                                          backend.to_ndarray(expected))
        except NotImplementedError:
            if dtype_full in (float, int):
                assert False
    def test_urand_seed_reproduction(sut, shape_1d):
        # Arrange
        sut_data, data = generate_data(sut, shape_1d, float)
        seed = 0

        # Act
        sut_seed_ndarray = []
        seed_ndarray = []
        for i in range(2):
            sut.urand(sut_data, seed)
            backend.urand(data, seed)
            sut_seed_ndarray.append(sut.to_ndarray(sut_data))
            seed_ndarray.append(backend.to_ndarray(data))

        # Assert
        np.testing.assert_array_equal(seed_ndarray[0], seed_ndarray[1])
        np.testing.assert_array_equal(sut_seed_ndarray[0], sut_seed_ndarray[1])
Beispiel #4
0
    def test_upload(sut, shape_full, dtype):
        # Arrange
        np.random.seed(44)
        numpy_data = np.random.rand(*shape_full).astype(dtype)
        sut_numpy_data = np.empty(shape_full)
        sut_numpy_data[:] = numpy_data[:]
        sut_backend_target, backend_target = generate_data(
            sut, shape_full, dtype)

        # Act
        backend.upload(numpy_data, backend_target)
        sut.upload(sut_numpy_data, sut_backend_target)

        # Assert
        np.testing.assert_array_equal(sut.to_ndarray(sut_backend_target),
                                      backend.to_ndarray(backend_target))
        np.testing.assert_array_equal(sut_numpy_data, numpy_data)
    def test_urand_seed_response(sut, shape_1d):
        # Arrange
        sut_data, data = generate_data(sut, shape_1d, float)

        # Act
        sut_seed_ndarray = []
        seed_ndarray = []
        for i in range(2):
            sut.urand(sut_data, seed=i)
            backend.urand(data, seed=i)
            sut_seed_ndarray.append(sut.to_ndarray(sut_data))
            seed_ndarray.append(backend.to_ndarray(data))

        # Assert
        TestMathsMethods.assert_array_significantly_different(
            seed_ndarray[0], seed_ndarray[1])
        TestMathsMethods.assert_array_significantly_different(
            sut_seed_ndarray[0], sut_seed_ndarray[1])
Beispiel #6
0
    def test_download(sut, shape_full, dtype):
        # Arrange
        sut_backend_data, backend_data = generate_data(sut, shape_full, dtype)
        if dtype is int:
            np_dtype = np.int64
        elif dtype is float:
            np_dtype = np.float64
        else:
            raise NotImplementedError()
        numpy_target = np.empty(shape_full, np_dtype)
        sut_numpy_target = np.empty(shape_full, np_dtype)

        # Act
        backend.download(backend_data, numpy_target)
        sut.download(sut_backend_data, sut_numpy_target)

        # Assert
        np.testing.assert_array_equal(sut_numpy_target, numpy_target)
        np.testing.assert_array_equal(sut.to_ndarray(sut_backend_data),
                                      backend.to_ndarray(backend_data))