Class CellXGeneAnnDataSingleCellDataLoaderTest

java.lang.Object
ubic.gemma.core.loader.expression.cellxgene.CellXGeneAnnDataSingleCellDataLoaderTest

public class CellXGeneAnnDataSingleCellDataLoaderTest extends Object
  • Constructor Details

    • CellXGeneAnnDataSingleCellDataLoaderTest

      public CellXGeneAnnDataSingleCellDataLoaderTest()
  • Method Details

    • testAMultiTermCellBecomesOneCharacteristicPerTerm

      @Test public void testAMultiTermCellBecomesOneCharacteristicPerTerm() throws IOException
      🛑 A cell annotated with two ontology terms must become two characteristics, each carrying ONE URI.

      The guard for that branch was written backwards: "||".contains( value ) asks whether the two-character string contains the VALUE, which is true only for "", "|" and "||". So a genuine multi-term cell missed the branch entirely, fell through to the single-term one, and had the whole string run through getTermUri — which splits on the FIRST colon and returns http://purl.obolibrary.org/obo/CL_0000129 || CL:0000235: one URI field holding two identifiers and a separator. 723 such rows on production, measured 2026-09-10.

      The branch had therefore never executed, and it carried a second defect: it filed each new characteristic under the *_ontology_term_id column rather than the label column.

      Throws:
      IOException
    • testASingleTermCellKeepsOneCharacteristic

      @Test public void testASingleTermCellKeepsOneCharacteristic() throws IOException
      The ordinary single-term case, which took the working branch all along.
      Throws:
      IOException
    • testCellTypeAssignmentStoresFullUris

      @Test public void testCellTypeAssignmentStoresFullUris() throws IOException
      CELLxGENE writes cell_type_ontology_term_id as CURIEs; the cell type assignment must store full URIs.

      The fixture's URI column holds CL:0000115 … CL:0008034. Before the fix these were stored verbatim, which is how HBCC_Cohort's 2026-09-29 reload wrote 25 CURIEs into its assignment and cell type factor.

      Throws:
      IOException
    • testKeepPooledSample

      @Test public void testKeepPooledSample() throws IOException
      Throws:
      IOException