Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef MANTID_KERNEL_SPECTRUMINDEXSETTEST_H_
#define MANTID_KERNEL_SPECTRUMINDEXSETTEST_H_
#include <cxxtest/TestSuite.h>
#include "MantidKernel/SpectrumIndexSet.h"
#include "MantidKernel/Exception.h"
using namespace Mantid;
using namespace Mantid::Kernel;
class SpectrumIndexSetTest : public CxxTest::TestSuite {
public:
void test_fullRangeConstructor() {
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set(3));
// Also empty set is supported
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set(0));
}
void test_rangeConstructor() {
// maximal possible range: 0...N-1
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set(0, 2, 3));
// smaller range works?
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set(1, 2, 3));
// min == max should work as well
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set(2, 2, 3));
}
void test_rangeConstructorErrorCases() {
// min negative
TS_ASSERT_THROWS(SpectrumIndexSet set(-1, 2, 3), Exception::IndexError);
// min > max
TS_ASSERT_THROWS(SpectrumIndexSet set(2, 1, 3), Exception::IndexError);
// max above count
TS_ASSERT_THROWS(SpectrumIndexSet set(1, 3, 3), Exception::IndexError);
// does it still fail if both are wrong?
TS_ASSERT_THROWS(SpectrumIndexSet set(3, 3, 3), Exception::IndexError);
}
void test_indexListConstructor() {
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set({1, 2}, 3));
// Empty set is supported
TS_ASSERT_THROWS_NOTHING(SpectrumIndexSet set({}, 3));
}
void test_indexListConstructorErrorCases() {
TS_ASSERT_THROWS(SpectrumIndexSet set({3}, 3), Exception::IndexError);
}
void test_size() {
size_t numberOfHistograms = 5;
SpectrumIndexSet set1(numberOfHistograms);
TS_ASSERT_EQUALS(set1.size(), numberOfHistograms);
SpectrumIndexSet set2(1, 2, numberOfHistograms);
TS_ASSERT_EQUALS(set2.size(), 2);
}
void test_fullRange() {
SpectrumIndexSet set(3);
TS_ASSERT_EQUALS(set.size(), 3);
TS_ASSERT_EQUALS(set[0], 0);
TS_ASSERT_EQUALS(set[1], 1);
TS_ASSERT_EQUALS(set[2], 2);
}
void test_range() {
SpectrumIndexSet set(1, 2, 3);
TS_ASSERT_EQUALS(set.size(), 2);
TS_ASSERT_EQUALS(set[0], 1);
TS_ASSERT_EQUALS(set[1], 2);
}
void test_indexList() {
// Note duplicate index
SpectrumIndexSet set({2, 1, 2}, 3);
TS_ASSERT_EQUALS(set.size(), 2);
TS_ASSERT_EQUALS(set[0], 1);
TS_ASSERT_EQUALS(set[1], 2);
}
};
#endif /* MANTID_KERNEL_SPECTRUMINDEXSETTEST_H_ */