25 #ifndef WVALUESETHISTOGRAM_TEST_H
26 #define WVALUESETHISTOGRAM_TEST_H
30 #include <cxxtest/TestSuite.h>
32 #include "../../WValueSet.h"
34 #include "../WValueSetHistogram.h"
48 double a[2] = { 0.0, 3.1415 };
49 const boost::shared_ptr< std::vector< double > > v =
50 boost::shared_ptr< std::vector< double > >(
51 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
56 boost::shared_ptr< WValueSet< double > > vsPtr( valueSet );
66 double a[4] = { 0.0, 1.0, 1.0, 4.0 };
67 const boost::shared_ptr< std::vector< double > > v =
68 boost::shared_ptr< std::vector< double > >(
69 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
74 TS_ASSERT_EQUALS( hist[0], 1 );
75 TS_ASSERT_EQUALS( hist[1], 2 );
76 TS_ASSERT_EQUALS( hist[2], 0 );
77 TS_ASSERT_EQUALS( hist[3], 0 );
78 TS_ASSERT_EQUALS( hist[4], 1 );
87 double a[4] = { 0.0, 1.0, 1.0, 4.0 };
88 const boost::shared_ptr< std::vector< double > > v =
89 boost::shared_ptr< std::vector< double > >(
90 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
97 TS_ASSERT_EQUALS( hist.at( 0 ), 1 );
98 TS_ASSERT_EQUALS( hist.at( 1 ), 2 );
99 TS_ASSERT_EQUALS( hist.at( 2 ), 0 );
100 TS_ASSERT_EQUALS( hist.at( 3 ), 0 );
101 TS_ASSERT_EQUALS( hist.at( 4 ), 1 );
104 TS_ASSERT_THROWS_ANYTHING( hist.at( 5 ) );
113 double a[4] = { 0.0, -5.0, 1.0, 2.0 };
114 const boost::shared_ptr< std::vector< double > > v =
115 boost::shared_ptr< std::vector< double > >(
116 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
122 TS_ASSERT_EQUALS( hist.getMinimum(), -5.0 );
123 TS_ASSERT_EQUALS( hist.getMaximum(), 2.0 );
132 double a[5] = { 0.0, 4.0, 1.0, 2.0, 1.0 };
133 const boost::shared_ptr< std::vector< double > > v =
134 boost::shared_ptr< std::vector< double > >(
135 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
141 TS_ASSERT_EQUALS( hist.
size(), 5 );
142 TS_ASSERT_EQUALS( hist.getBucketSize(), 1.0 );
151 double a[5] = { 0.0, 4.0, 1.0, 2.0, 1.0 };
152 const boost::shared_ptr< std::vector< double > > v =
153 boost::shared_ptr< std::vector< double > >(
154 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
165 TS_ASSERT_EQUALS( hist.getIndexForValue( 4.0 ), 4 );
166 TS_ASSERT_EQUALS( hist.getIndexForValue( 3.999 ), 3 );
167 TS_ASSERT_EQUALS( hist.getIndexForValue( 0.0 ), 0 );
168 TS_ASSERT_EQUALS( hist.getIndexForValue( 122.0 ), 4 );
169 TS_ASSERT_EQUALS( hist.getIndexForValue( -122.0 ), 0 );
178 double a[5] = { 0.0, 4.0, 1.0, 2.0, 1.0 };
179 const boost::shared_ptr< std::vector< double > > v =
180 boost::shared_ptr< std::vector< double > >(
181 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
186 std::cout << hist << std::endl;
188 TS_ASSERT_EQUALS( hist.accumulate( 0, 2 ), 3 );
189 TS_ASSERT_EQUALS( hist.accumulate( 2, 0 ), 3 );
190 TS_ASSERT_EQUALS( hist.accumulate( 2, 2 ), 0 );
191 TS_ASSERT( hist.accumulate( 2, 2 ) != hist[ 2 ] );
193 TS_ASSERT_THROWS_ANYTHING( hist.accumulate( 0, 123 ) );
202 double a[5] = { 0.0, 4.0, 1.0, 2.0, 1.0 };
203 const boost::shared_ptr< std::vector< double > > v =
204 boost::shared_ptr< std::vector< double > >(
205 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
217 TS_ASSERT_EQUALS( hist.m_initialBuckets.get(), hist2.
m_initialBuckets.get() );
219 TS_ASSERT_EQUALS( hist.m_mappedBuckets.get(), hist2.
m_mappedBuckets.get() );
228 TS_ASSERT_EQUALS( hist.m_initialBuckets.get(), hist3.
m_initialBuckets.get() );
232 TS_ASSERT_EQUALS( hist.m_nMappedBuckets, 10 );
242 double a[5] = { 0.0, 4.0, 1.0, 2.0, 1.0 };
243 const boost::shared_ptr< std::vector< double > > v =
244 boost::shared_ptr< std::vector< double > >(
245 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
257 TS_ASSERT_EQUALS( hist.m_initialBuckets.get(), hist2.
m_initialBuckets.get() );
266 TS_ASSERT_EQUALS( hist2.
at( 0 ), 4 );
267 TS_ASSERT_EQUALS( hist2.
at( 1 ), 1 );
271 #endif // WVALUESETHISTOGRAM_TEST_H