Class SampleCorrelationAttritionMappingTest

java.lang.Object
ubic.gemma.persistence.service.analysis.expression.sampleCoexpression.SampleCorrelationAttritionMappingTest

public class SampleCorrelationAttritionMappingTest extends Object
Pins the shape of the filter attrition recorded on SampleCorrelationAnalysisEvent.

Two things here are worth a test rather than a reading. The stage list is an attrition funnel, so its order is meaning, not presentation -- read out of order the numbers describe a different sequence of filters. And a stage that did not run still reports a row count: without that, "this filter removed nothing" and "this filter was skipped" are the same JSON, which is exactly the confusion the applied flag exists to stop.

  • Constructor Details

    • SampleCorrelationAttritionMappingTest

      public SampleCorrelationAttritionMappingTest()
  • Method Details

    • attritionCarriesEveryStageInTheOrderTheFilterAppliesThem

      @Test public void attritionCarriesEveryStageInTheOrderTheFilterAppliesThem()
    • onlyTheOutlierStageReportsAColumnCount

      @Test public void onlyTheOutlierStageReportsAColumnCount()
      Only the outlier stage can drop samples, and the correlation-matrix run deliberately does not mask them -- so a reader has to be able to see that the columns never moved.
    • configurationTravelsWithTheCounts

      @Test public void configurationTravelsWithTheCounts()
      The configuration travels with the counts: the sample-correlation filter is not the one the "filtered" data download runs, so the numbers are not interpretable on their own.
    • payloadRoundTripsThroughTheAuditEventPayloadType

      @Test public void payloadRoundTripsThroughTheAuditEventPayloadType() throws Exception
      The aspect writes the payload through the polymorphic AuditEventPayload type, so the stored JSON carries a @type discriminator and a reader has to register the subtype to resolve it. Proving the round-trip here means a rename of the record cannot silently strand every row already written under the old name.
      Throws:
      Exception