24 #include "cheetah/rfim/test/MetricsTest.h" 33 MetricsTest::MetricsTest()
38 MetricsTest::~MetricsTest()
42 void MetricsTest::SetUp()
46 void MetricsTest::TearDown()
50 TEST_F(MetricsTest, test_empty)
52 typedef rfim::Metrics::TimeFrequencyFlagsType Flags;
57 rfim::Metrics m(expected, given);
58 ASSERT_EQ(m.num_correct(), 0U);
59 ASSERT_EQ(m.num_rfi(), 0U);
60 ASSERT_EQ(m.num_false_positives(), 0U);
61 ASSERT_EQ(m.num_false_negatives(), 0U);
64 TEST_F(MetricsTest, test_true_positive)
66 typedef rfim::Metrics::TimeFrequencyFlagsType Flags;
67 DimensionSize<data::Time> num_spectra(20);
68 DimensionSize<data::Frequency> num_channels(10);
69 Flags expected(num_spectra, num_channels);
71 expected[DimensionIndex<data::Time>(2)][DimensionIndex<data::Frequency>(3)] =
true;
72 expected[DimensionIndex<data::Time>(4)][DimensionIndex<data::Frequency>(4)] =
true;
73 Flags given(num_spectra, num_channels);
75 given[DimensionIndex<data::Time>(2)][DimensionIndex<data::Frequency>(3)] =
true;
76 given[DimensionIndex<data::Time>(4)][DimensionIndex<data::Frequency>(4)] =
true;
78 rfim::Metrics m(expected, given);
79 ASSERT_EQ(m.num_correct(), 2U);
80 ASSERT_DOUBLE_EQ(m.correct_percentage(), 100.0);
81 ASSERT_EQ(m.num_rfi(), 2U);
82 ASSERT_EQ(m.num_false_positives(), 0U);
83 ASSERT_DOUBLE_EQ(m.false_positives_percentage(), 0.0);
84 ASSERT_EQ(m.num_false_negatives(), 0U);
85 ASSERT_DOUBLE_EQ(m.false_negatives_percentage(), 0.0);
88 TEST_F(MetricsTest, test_false_positive_rfi_present)
90 typedef rfim::Metrics::TimeFrequencyFlagsType Flags;
91 DimensionSize<data::Time> num_spectra(20);
92 DimensionSize<data::Frequency> num_channels(10);
93 Flags expected(num_spectra, num_channels);
95 expected[DimensionIndex<data::Time>(2)][DimensionIndex<data::Frequency>(3)] =
true;
96 expected[DimensionIndex<data::Time>(4)][DimensionIndex<data::Frequency>(4)] =
true;
97 Flags given(num_spectra, num_channels);
99 given[DimensionIndex<data::Time>(2)][DimensionIndex<data::Frequency>(6)] =
true;
100 given[DimensionIndex<data::Time>(4)][DimensionIndex<data::Frequency>(9)] =
true;
102 rfim::Metrics m(expected, given);
103 ASSERT_EQ(m.num_correct(), 0U);
104 ASSERT_DOUBLE_EQ(m.rfi_detected_percentage(), 0.0);
105 ASSERT_EQ(m.num_rfi(), 2U);
106 ASSERT_EQ(m.num_false_positives(), 2U);
107 ASSERT_DOUBLE_EQ(m.false_positives_percentage(), (2.0/expected.data_size()) * 100.0);
108 ASSERT_EQ(m.num_false_negatives(), 2U);
109 ASSERT_DOUBLE_EQ(m.false_negatives_percentage(), (2.0/expected.data_size()) * 100.0);
110 ASSERT_DOUBLE_EQ(m.correct_percentage(), 100.0*(((double)(num_channels * num_spectra) - 4)/(num_channels * num_spectra)));
113 TEST_F(MetricsTest, test_false_positive_no_rfi_present)
115 typedef rfim::Metrics::TimeFrequencyFlagsType Flags;
116 DimensionSize<data::Time> num_spectra(20);
117 DimensionSize<data::Frequency> num_channels(10);
118 Flags expected(num_spectra, num_channels);
120 Flags given(num_spectra, num_channels);
122 given[DimensionIndex<data::Time>(2)][DimensionIndex<data::Frequency>(6)] =
true;
123 given[DimensionIndex<data::Time>(4)][DimensionIndex<data::Frequency>(9)] =
true;
125 rfim::Metrics m(expected, given);
126 ASSERT_EQ(m.num_correct(), 0U);
127 ASSERT_DOUBLE_EQ(m.rfi_detected_percentage(), 100.0);
128 ASSERT_EQ(m.num_rfi(), 0U);
129 ASSERT_EQ(m.num_false_positives(), 2U);
130 ASSERT_DOUBLE_EQ(m.false_positives_percentage(), (2.0/expected.data_size()) * 100.0);
131 ASSERT_EQ(m.num_false_negatives(), 0U);
132 ASSERT_DOUBLE_EQ(m.false_negatives_percentage(), 0.0);
133 ASSERT_DOUBLE_EQ(m.correct_percentage(), 100.0*(((double)(num_channels * num_spectra) - 2)/(num_channels * num_spectra)));
136 TEST_F(MetricsTest, test_no_detections_rfi_present)
138 typedef rfim::Metrics::TimeFrequencyFlagsType Flags;
139 DimensionSize<data::Time> num_spectra(20);
140 DimensionSize<data::Frequency> num_channels(10);
141 Flags expected(num_spectra, num_channels);
143 expected[DimensionIndex<data::Time>(2)][DimensionIndex<data::Frequency>(3)] =
true;
144 expected[DimensionIndex<data::Time>(4)][DimensionIndex<data::Frequency>(4)] =
true;
145 Flags given(num_spectra, num_channels);
148 rfim::Metrics m(expected, given);
149 ASSERT_EQ(m.num_correct(), 0U);
150 ASSERT_DOUBLE_EQ(m.rfi_detected_percentage(), 0.0);
151 ASSERT_EQ(m.num_rfi(), 2U);
152 ASSERT_EQ(m.num_false_positives(), 0U);
153 ASSERT_DOUBLE_EQ(m.false_positives_percentage(), (0.0/expected.data_size()) * 100.0);
154 ASSERT_EQ(m.num_false_negatives(), 2U);
155 ASSERT_DOUBLE_EQ(m.false_negatives_percentage(), (2.0/expected.data_size()) * 100.0);
156 ASSERT_DOUBLE_EQ(m.correct_percentage(), 100.0*(((double)(num_channels * num_spectra) - 2)/(num_channels * num_spectra)));
Some limits and constants for FLDO.