def test_write_subregion_to_file(self, matrix,
                                     prepend_n_rows, prepend_n_cols,
                                     partition, sliced_dimension):
        # Create the matrix region
        mr = MatrixRegion(matrix, prepend_n_rows=prepend_n_rows,
                          prepend_n_columns=prepend_n_cols,
                          sliced_dimension=sliced_dimension)

        partitioned_matrix = matrix[mr.expanded_slice(partition)]

        # Get the temporary file
        fp = tempfile.TemporaryFile()

        # Write the subregion
        mr.write_subregion_to_file(fp, partition)

        # Read and check
        # Check the prepended data
        fp.seek(0)
        if prepend_n_rows:
            n_rows = fp.read(4)
            assert (partitioned_matrix.shape[0] ==
                    struct.unpack('I', n_rows)[0])

        if prepend_n_cols:
            n_cols = fp.read(4)
            assert (partitioned_matrix.shape[1] ==
                    struct.unpack('I', n_cols)[0])

        # Check the actual data
        data = np.frombuffer(fp.read(), dtype=matrix.dtype).reshape(
            partitioned_matrix.shape)
        assert np.all(data == partitioned_matrix)
    def test_write_subregion_to_file(self, matrix, prepend_n_rows,
                                     prepend_n_cols, partition,
                                     sliced_dimension):
        # Create the matrix region
        mr = MatrixRegion(matrix,
                          prepend_n_rows=prepend_n_rows,
                          prepend_n_columns=prepend_n_cols,
                          sliced_dimension=sliced_dimension)

        partitioned_matrix = matrix[mr.expanded_slice(partition)]

        # Get the temporary file
        fp = tempfile.TemporaryFile()

        # Write the subregion
        mr.write_subregion_to_file(fp, partition)

        # Read and check
        # Check the prepended data
        fp.seek(0)
        if prepend_n_rows:
            n_rows = fp.read(4)
            assert (partitioned_matrix.shape[0] == struct.unpack('I',
                                                                 n_rows)[0])

        if prepend_n_cols:
            n_cols = fp.read(4)
            assert (partitioned_matrix.shape[1] == struct.unpack('I',
                                                                 n_cols)[0])

        # Check the actual data
        data = np.frombuffer(fp.read(), dtype=matrix.dtype).reshape(
            partitioned_matrix.shape)
        assert np.all(data == partitioned_matrix)
    def test_write_subregion_to_file_with_1d_array(self):
        matrix = np.ones(100, dtype=np.uint32)
        mr = MatrixRegion(matrix, True, True)

        # Get the temporary file
        fp = tempfile.TemporaryFile()

        # Write the subregion
        mr.write_subregion_to_file(fp, slice(1, 1))

        # Read and check
        # Check the prepended data
        fp.seek(0)
        n_rows = fp.read(4)
        assert 100 == struct.unpack('I', n_rows)[0]

        n_cols = fp.read(4)
        assert 1 == struct.unpack('I', n_cols)[0]

        # Check the actual data
        read_data = fp.read()
        data = np.frombuffer(read_data, dtype=matrix.dtype).reshape(
            matrix.shape)
        assert np.all(data == matrix)
    def test_write_subregion_to_file_with_1d_array(self):
        matrix = np.ones(100, dtype=np.uint32)
        mr = MatrixRegion(matrix, True, True)

        # Get the temporary file
        fp = tempfile.TemporaryFile()

        # Write the subregion
        mr.write_subregion_to_file(fp, slice(1, 1))

        # Read and check
        # Check the prepended data
        fp.seek(0)
        n_rows = fp.read(4)
        assert 100 == struct.unpack('I', n_rows)[0]

        n_cols = fp.read(4)
        assert 1 == struct.unpack('I', n_cols)[0]

        # Check the actual data
        read_data = fp.read()
        data = np.frombuffer(read_data,
                             dtype=matrix.dtype).reshape(matrix.shape)
        assert np.all(data == matrix)