예제 #1
0
    def test_concatenate_coordinates(self):
        fd1 = FDataGrid([[1, 2, 3, 4], [2, 3, 4, 5]])
        fd2 = FDataGrid([[3, 4, 5, 6], [4, 5, 6, 7]])

        fd1.argument_names = ["x"]
        fd1.coordinate_names = ["y"]
        fd2.argument_names = ["w"]
        fd2.coordinate_names = ["t"]
        fd = fd1.concatenate(fd2, as_coordinates=True)

        np.testing.assert_equal(fd.n_samples, 2)
        np.testing.assert_equal(fd.dim_codomain, 2)
        np.testing.assert_equal(fd.dim_domain, 1)

        np.testing.assert_array_equal(fd.data_matrix,
                                      [[[1, 3], [2, 4], [3, 5], [4, 6]],
                                       [[2, 4], [3, 5], [4, 6], [5, 7]]])

        # Testing labels
        np.testing.assert_array_equal(("y", "t"), fd.coordinate_names)
        fd2.coordinate_names = None
        fd = fd1.concatenate(fd2, as_coordinates=True)
        np.testing.assert_array_equal(("y", None), fd.coordinate_names)
        fd1.coordinate_names = None
        fd = fd1.concatenate(fd2, as_coordinates=True)
        np.testing.assert_equal((None, None), fd.coordinate_names)
예제 #2
0
    def test_coordinates(self):
        fd1 = FDataGrid([[1, 2, 3, 4], [2, 3, 4, 5]])
        fd1.argument_names = ["x"]
        fd1.coordinate_names = ["y"]
        fd2 = FDataGrid([[3, 4, 5, 6], [4, 5, 6, 7]])
        fd = fd1.concatenate(fd2, as_coordinates=True)

        # Indexing with number
        np.testing.assert_array_equal(fd.coordinates[0].data_matrix,
                                      fd1.data_matrix)
        np.testing.assert_array_equal(fd.coordinates[1].data_matrix,
                                      fd2.data_matrix)

        # Iteration
        for fd_j, fd_i in zip([fd1, fd2], fd.coordinates):
            np.testing.assert_array_equal(fd_j.data_matrix, fd_i.data_matrix)

        fd3 = fd1.concatenate(fd2, fd1, fd, as_coordinates=True)

        # Multiple indexation
        np.testing.assert_equal(fd3.dim_codomain, 5)
        np.testing.assert_array_equal(fd3.coordinates[:2].data_matrix,
                                      fd.data_matrix)
        np.testing.assert_array_equal(fd3.coordinates[-2:].data_matrix,
                                      fd.data_matrix)
        np.testing.assert_array_equal(
            fd3.coordinates[np.array(
                (False, False, True, False, True))].data_matrix,
            fd.data_matrix)
예제 #3
0
    def test_concatenate(self):
        fd1 = FDataGrid([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]])
        fd2 = FDataGrid([[3, 4, 5, 6, 7], [4, 5, 6, 7, 8]])

        fd1.argument_names = ["x"]
        fd1.coordinate_names = ["y"]
        fd = fd1.concatenate(fd2)

        np.testing.assert_equal(fd.n_samples, 4)
        np.testing.assert_equal(fd.dim_codomain, 1)
        np.testing.assert_equal(fd.dim_domain, 1)
        np.testing.assert_array_equal(fd.data_matrix[..., 0],
                                      [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6],
                                       [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]])
        np.testing.assert_array_equal(fd1.argument_names, fd.argument_names)
        np.testing.assert_array_equal(fd1.coordinate_names,
                                      fd.coordinate_names)
예제 #4
0
    def test_concatenate2(self):
        sample1 = np.arange(0, 10)
        sample2 = np.arange(10, 20)
        fd1 = FDataGrid([sample1])
        fd2 = FDataGrid([sample2])

        fd1.argument_names = ["x"]
        fd1.coordinate_names = ["y"]
        fd = concatenate([fd1, fd2])

        np.testing.assert_equal(fd.n_samples, 2)
        np.testing.assert_equal(fd.dim_codomain, 1)
        np.testing.assert_equal(fd.dim_domain, 1)
        np.testing.assert_array_equal(fd.data_matrix[..., 0],
                                      [sample1, sample2])
        np.testing.assert_array_equal(fd1.argument_names, fd.argument_names)
        np.testing.assert_array_equal(fd1.coordinate_names,
                                      fd.coordinate_names)