def test_transform_fn_batch(self, mock_load):
     """
     Assures transform function batches data array creation correctly and
     """
     GeneExpression.DATA_ARRAY_BATCH_SIZE = 7
     expression_matrix = MTXIngestor(
         "../tests/data/mtx/AB_toy_data_toy.matrix.mtx",
         "5dd5ae25421aa910a723a447",
         "5f2f58eba0845f8c4cf1dc12",
         gene_file="../tests/data/mtx/AB_toy_data_toy.genes.tsv",
         barcode_file="../tests/data/mtx/AB_toy_data_toy.barcodes.tsv",
     )
     expression_matrix.is_raw_count = False
     with patch(
             "expression_files.expression_files.GeneExpression.DATA_ARRAY_BATCH_SIZE",
             new_callable=PropertyMock,
             return_value=7,
     ):
         expression_matrix.extract_feature_barcode_matrices()
         expression_matrix.transform()
    def test_transform_fn(self):
        """
        Assures transform function creates gene data model correctly
        """
        expression_matrix = MTXIngestor(
            "../tests/data/mtx/AB_toy_data_toy.matrix.mtx",
            "5d276a50421aa9117c982845",
            "5dd5ae25421aa910a723a337",
            gene_file="../tests/data/mtx/AB_toy_data_toy.genes.tsv",
            barcode_file="../tests/data/mtx/AB_toy_data_toy.barcodes.tsv",
        )
        expression_matrix.test_models = None
        expression_matrix.models_processed = 0
        expression_matrix.extract_feature_barcode_matrices()
        expression_matrix.is_raw_count = False
        expression_matrix.transform()
        amount_of_models = len(
            expression_matrix.test_models["data_arrays"].keys()) + len(
                expression_matrix.test_models["gene_models"].keys())
        self.assertEqual(expression_matrix.models_processed, amount_of_models)

        # MTX with a single column feature file
        expression_matrix = MTXIngestor(
            "../tests/data/mtx/one_column_feature_file_data_models.mtx",
            "5f2f58eba0845f8c4cf1dc12",
            "5dd5ae25421aa910a723a447",
            gene_file=
            "../tests/data/mtx/one_column_feature_file_data_models.genes.tsv",
            barcode_file=
            "../tests/data/mtx/one_column_feature_file_data_models.barcodes.tsv",
        )
        expression_matrix.test_models = None
        expression_matrix.models_processed = 0
        expression_matrix.extract_feature_barcode_matrices()
        expression_matrix.is_raw_count = False
        expression_matrix.transform()
        amount_of_models = len(
            expression_matrix.test_models["data_arrays"]) + len(
                expression_matrix.test_models["gene_models"])
        self.assertEqual(expression_matrix.models_processed, amount_of_models)

        # Checks models for unsorted MTX file
        with patch(
                "expression_files.expression_files.GeneExpression.check_unique_cells",
                return_value=True,
        ), patch(
                "expression_files.expression_files.GeneExpression.is_raw_count_file",
                return_value=False,
        ):
            expression_matrix = MTXIngestor(
                "../tests/data/mtx/AB_toy_data_toy.unsorted_mtx.mtx",
                "5d276a50421aa9117c982845",
                "5dd5ae25421aa910a723a337",
                gene_file="../tests/data/mtx/AB_toy_data_toy.genes.tsv",
                barcode_file="../tests/data/mtx/AB_toy_data_toy.barcodes.tsv",
            )
            expression_matrix.test_models = None
            expression_matrix.models_processed = 0
            expression_matrix.execute_ingest()
            amount_of_models = len(
                expression_matrix.test_models["data_arrays"]) + len(
                    expression_matrix.test_models["gene_models"])
            self.assertEqual(expression_matrix.models_processed,
                             amount_of_models)

        # Checks models for raw count matrices
        expression_matrix = MTXIngestor(
            "../tests/data/mtx/raw_count.sparse.mtx",
            "5d276a50421aa9117c982845",
            "5dd5ae25421aa910a723a337",
            gene_file="../tests/data/mtx/raw_count.genes.tsv",
            barcode_file="../tests/data/mtx/raw_count.barcodes.tsv",
        )
        expression_matrix.is_raw_count = True
        expression_matrix.test_models = None
        expression_matrix.models_processed = 0
        expression_matrix.extract_feature_barcode_matrices()
        expression_matrix.transform()
        amount_of_models = len(expression_matrix.test_models["data_arrays"])
        self.assertEqual(expression_matrix.models_processed, amount_of_models)