コード例 #1
0
/**
 * @class illumina::interop::model::metrics::extraction_metric
 * @test Confirm version 2 of the metric can be written to and read from a stream
 * @test Confirm version 2 of the metric matches known binary file
 */
TYPED_TEST(extraction_metrics_test, test_read_write)
{
    EXPECT_EQ(TypeParam::actual_metric_set.version(), TypeParam::VERSION);
    EXPECT_EQ(TypeParam::actual_metric_set.size(), TypeParam::expected_metric_set.size());
    EXPECT_EQ(TypeParam::actual_metric_set.max_cycle(), TypeParam::expected_metric_set.max_cycle());


    for(typename TypeParam::const_iterator itExpected=TypeParam::expected_metric_set.begin(), itActual = TypeParam::actual_metric_set.begin();
        itExpected != TypeParam::expected_metric_set.end() && itActual != TypeParam::actual_metric_set.end();
        itExpected++,itActual++)
    {
        EXPECT_EQ(itExpected->lane(), itActual->lane());
        EXPECT_EQ(itExpected->tile(), itActual->tile());
        EXPECT_EQ(itExpected->cycle(), itActual->cycle());
        EXPECT_EQ(itExpected->dateTime(), itActual->dateTime());


        std::time_t t = static_cast<std::time_t>(itActual->dateTime());
        std::tm* tm = std::localtime(&t);
        EXPECT_NE(tm, static_cast<std::tm*>(0));

        for(size_t i=0;i<extraction_metric::MAX_CHANNELS;i++)
        {
            EXPECT_EQ(itExpected->max_intensity(i), itActual->max_intensity(i));
            EXPECT_NEAR(itExpected->focusScore(i), itActual->focusScore(i), 1e-7);
        }
    }
}
コード例 #2
0
ファイル: tile_metrics_test.cpp プロジェクト: kevyin/interop
/**
 * @class illumina::interop::model::metrics::tile_metric
 * @test Confirm version 2 of the metric can be written to and read from a stream
 * @test Confirm version 2 of the metric matches known binary file
 */
TYPED_TEST(tile_metrics_test, test_read_write)
{
    EXPECT_EQ(TypeParam::actual_metric_set.version(), TypeParam::VERSION);
    EXPECT_EQ(TypeParam::actual_metrics.size(), TypeParam::expected_metrics.size());

    const float tol = 1e-7f / 0.01f;
    for(typename TypeParam::const_iterator itExpected=TypeParam::expected_metrics.begin(), itActual = TypeParam::actual_metrics.begin();
        itExpected != TypeParam::expected_metrics.end() && itActual != TypeParam::actual_metrics.end();
        itExpected++,itActual++)
    {
        EXPECT_EQ(itExpected->lane(), itActual->lane());
        EXPECT_EQ(itExpected->tile(), itActual->tile());

        EXPECT_NEAR(itExpected->clusterDensity(), itActual->clusterDensity(), tol);
        EXPECT_NEAR(itExpected->clusterDensityPf(), itActual->clusterDensityPf(), tol);
        EXPECT_NEAR(itExpected->clusterCount(), itActual->clusterCount(), tol);
        EXPECT_NEAR(itExpected->clusterCountPf(), itActual->clusterCountPf(), tol);
        EXPECT_EQ(itExpected->read_metrics().size(), itActual->read_metrics().size());
        for(typename TypeParam::metric_type::read_metric_vector::const_iterator itReadExpected = itExpected->read_metrics().begin(),
                        itReadActual = itActual->read_metrics().begin();
                        itReadExpected != itExpected->read_metrics().end() &&
                        itReadActual != itActual->read_metrics().end(); itReadExpected++, itReadActual++)
        {
            EXPECT_EQ(itReadExpected->read(), itReadActual->read());
            EXPECT_NEAR(itReadExpected->percent_aligned(), itReadActual->percent_aligned(), tol);
            EXPECT_NEAR(itReadExpected->percent_phasing(), itReadActual->percent_phasing(), tol);
            EXPECT_NEAR(itReadExpected->percent_prephasing(), itReadActual->percent_prephasing(), tol);
        }
    }
}
コード例 #3
0
/**
 * @class illumina::interop::model::metrics::error_metric
 * @test Confirm version 3 of the metric can be written to and read from a stream
 * @test Confirm version 3 of the metric matches known binary file
 */
TYPED_TEST(error_metrics_test, test_read_write)
{
    EXPECT_EQ(TypeParam::actual_metric_set.version(), TypeParam::VERSION);
    EXPECT_EQ(TypeParam::actual_metric_set.size(), TypeParam::expected_metric_set.size());
    EXPECT_EQ(TypeParam::actual_metric_set.max_cycle(), TypeParam::expected_metric_set.max_cycle());

    for(typename TypeParam::const_iterator itExpected=TypeParam::expected_metric_set.begin(), itActual = TypeParam::actual_metric_set.begin();
        itExpected != TypeParam::expected_metric_set.end() && itActual != TypeParam::actual_metric_set.end();
        itExpected++,itActual++)
    {
        EXPECT_EQ(itExpected->lane(), itActual->lane());
        EXPECT_EQ(itExpected->tile(), itActual->tile());
        EXPECT_EQ(itExpected->cycle(), itActual->cycle());
        EXPECT_EQ(itExpected->mismatch_count(), itActual->mismatch_count());
        EXPECT_NEAR(itExpected->errorRate(), itActual->errorRate(), 1e-7f);
        for(ptrdiff_t i=0;i<static_cast<ptrdiff_t>(itExpected->mismatch_count());i++)
            EXPECT_EQ(itExpected->mismatch_cluster_count(i), itActual->mismatch_cluster_count(i));
    }
}
コード例 #4
0
/**
 * @class illumina::interop::model::metrics::corrected_intensity_metric
 * @test Confirm version 2 of the metric can be written to and read from a stream
 * @test Confirm version 3 of the metric can be written to and read from a stream
 * @test Confirm version 2 of the metric matches known binary file
 * @test Confirm version 3 of the metric matches known binary file
 */
TYPED_TEST(corrected_intensity_metrics_test, test_read_write)
{
    EXPECT_EQ(TypeParam::actual_metric_set.version(), TypeParam::VERSION);
    EXPECT_EQ(TypeParam::actual_metrics.size(), TypeParam::expected_metrics.size());
    EXPECT_EQ(TypeParam::actual_metric_set.max_cycle(), TypeParam::expected_metric_set.max_cycle());

    for(typename TypeParam::const_iterator itExpected=TypeParam::expected_metrics.begin(), itActual = TypeParam::actual_metrics.begin();
        itExpected != TypeParam::expected_metrics.end() && itActual != TypeParam::actual_metrics.end();
        itExpected++,itActual++)
    {
        EXPECT_EQ(itExpected->lane(), itActual->lane());
        EXPECT_EQ(itExpected->tile(), itActual->tile());
        EXPECT_EQ(itExpected->cycle(), itActual->cycle());
        if(TypeParam::VERSION < 3)
        {
            EXPECT_EQ(itExpected->averageCycleIntensity(), itActual->averageCycleIntensity());
        }
        if(TypeParam::VERSION == 2)
        {
            if (!std::isnan(itExpected->signalToNoise()) || !std::isnan(itActual->signalToNoise()))
                EXPECT_NEAR(itExpected->signalToNoise(), itActual->signalToNoise(), 1e-7f);
        }
        for(ptrdiff_t i=-1;i<constants::NUM_OF_BASES;i++)
            EXPECT_EQ(itExpected->calledCounts(i), itActual->calledCounts(i));
        for(size_t i=0;i<constants::NUM_OF_BASES;i++)
        {
            EXPECT_EQ(itExpected->correctedIntCalled(i), itActual->correctedIntCalled(i));
            if(TypeParam::VERSION < 3) {
                EXPECT_EQ(itExpected->correctedIntAll(i), itActual->correctedIntAll(i));
            }
        }
    }
}