Mercurial > hg > svcore
comparison base/test/RangeMapperTest.h @ 879:eb6b6a88faed
Unit-test RangeMapper, fix a couple of bugs
author | Chris Cannam |
---|---|
date | Fri, 31 Jan 2014 13:39:37 +0000 |
parents | |
children | b4787b595db3 |
comparison
equal
deleted
inserted
replaced
862:786ee8d1f30e | 879:eb6b6a88faed |
---|---|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ | |
2 | |
3 /* | |
4 Sonic Visualiser | |
5 An audio file viewer and annotation editor. | |
6 Centre for Digital Music, Queen Mary, University of London. | |
7 | |
8 This program is free software; you can redistribute it and/or | |
9 modify it under the terms of the GNU General Public License as | |
10 published by the Free Software Foundation; either version 2 of the | |
11 License, or (at your option) any later version. See the file | |
12 COPYING included with this distribution for more information. | |
13 */ | |
14 | |
15 #ifndef TEST_RANGE_MAPPER_H | |
16 #define TEST_RANGE_MAPPER_H | |
17 | |
18 #include "../RangeMapper.h" | |
19 | |
20 #include <QObject> | |
21 #include <QtTest> | |
22 #include <QDir> | |
23 | |
24 #include <iostream> | |
25 | |
26 using namespace std; | |
27 | |
28 class RangeMapperTest : public QObject | |
29 { | |
30 Q_OBJECT | |
31 | |
32 private slots: | |
33 void linearUpForward() | |
34 { | |
35 LinearRangeMapper rm(1, 8, 0.5, 4.0, "x", false); | |
36 QCOMPARE(rm.getUnit(), QString("x")); | |
37 QCOMPARE(rm.getPositionForValue(0.5), 1); | |
38 QCOMPARE(rm.getPositionForValue(4.0), 8); | |
39 QCOMPARE(rm.getPositionForValue(3.0), 6); | |
40 QCOMPARE(rm.getPositionForValue(3.1), 6); | |
41 QCOMPARE(rm.getPositionForValue(3.4), 7); | |
42 QCOMPARE(rm.getPositionForValue(0.2), 1); | |
43 QCOMPARE(rm.getPositionForValue(-12), 1); | |
44 QCOMPARE(rm.getPositionForValue(6.1), 8); | |
45 } | |
46 | |
47 void linearDownForward() | |
48 { | |
49 LinearRangeMapper rm(1, 8, 0.5, 4.0, "x", true); | |
50 QCOMPARE(rm.getUnit(), QString("x")); | |
51 QCOMPARE(rm.getPositionForValue(0.5), 8); | |
52 QCOMPARE(rm.getPositionForValue(4.0), 1); | |
53 QCOMPARE(rm.getPositionForValue(3.0), 3); | |
54 QCOMPARE(rm.getPositionForValue(3.1), 3); | |
55 QCOMPARE(rm.getPositionForValue(3.4), 2); | |
56 QCOMPARE(rm.getPositionForValue(0.2), 8); | |
57 QCOMPARE(rm.getPositionForValue(-12), 8); | |
58 QCOMPARE(rm.getPositionForValue(6.1), 1); | |
59 } | |
60 | |
61 void linearUpBackward() | |
62 { | |
63 LinearRangeMapper rm(1, 8, 0.5, 4.0, "x", false); | |
64 QCOMPARE(rm.getUnit(), QString("x")); | |
65 QCOMPARE(rm.getValueForPosition(1), 0.5); | |
66 QCOMPARE(rm.getValueForPosition(8), 4.0); | |
67 QCOMPARE(rm.getValueForPosition(6), 3.0); | |
68 QCOMPARE(rm.getValueForPosition(7), 3.5); | |
69 QCOMPARE(rm.getValueForPosition(0), rm.getValueForPosition(1)); | |
70 QCOMPARE(rm.getValueForPosition(9), rm.getValueForPosition(8)); | |
71 } | |
72 | |
73 void linearDownBackward() | |
74 { | |
75 LinearRangeMapper rm(1, 8, 0.5, 4.0, "x", true); | |
76 QCOMPARE(rm.getUnit(), QString("x")); | |
77 QCOMPARE(rm.getValueForPosition(8), 0.5); | |
78 QCOMPARE(rm.getValueForPosition(1), 4.0); | |
79 QCOMPARE(rm.getValueForPosition(3), 3.0); | |
80 QCOMPARE(rm.getValueForPosition(2), 3.5); | |
81 QCOMPARE(rm.getValueForPosition(0), rm.getValueForPosition(1)); | |
82 QCOMPARE(rm.getValueForPosition(9), rm.getValueForPosition(8)); | |
83 } | |
84 | |
85 void logUpForward() | |
86 { | |
87 LogRangeMapper rm(3, 7, 10, 100000, "x", false); | |
88 QCOMPARE(rm.getUnit(), QString("x")); | |
89 QCOMPARE(rm.getPositionForValue(10.0), 3); | |
90 QCOMPARE(rm.getPositionForValue(100000.0), 7); | |
91 QCOMPARE(rm.getPositionForValue(1.0), 3); | |
92 QCOMPARE(rm.getPositionForValue(1000000.0), 7); | |
93 QCOMPARE(rm.getPositionForValue(1000.0), 5); | |
94 QCOMPARE(rm.getPositionForValue(900.0), 5); | |
95 QCOMPARE(rm.getPositionForValue(20000), 6); | |
96 } | |
97 | |
98 void logDownForward() | |
99 { | |
100 LogRangeMapper rm(3, 7, 10, 100000, "x", true); | |
101 QCOMPARE(rm.getUnit(), QString("x")); | |
102 QCOMPARE(rm.getPositionForValue(10.0), 7); | |
103 QCOMPARE(rm.getPositionForValue(100000.0), 3); | |
104 QCOMPARE(rm.getPositionForValue(1.0), 7); | |
105 QCOMPARE(rm.getPositionForValue(1000000.0), 3); | |
106 QCOMPARE(rm.getPositionForValue(1000.0), 5); | |
107 QCOMPARE(rm.getPositionForValue(900.0), 5); | |
108 QCOMPARE(rm.getPositionForValue(20000), 4); | |
109 } | |
110 | |
111 void logUpBackward() | |
112 { | |
113 LogRangeMapper rm(3, 7, 10, 100000, "x", false); | |
114 QCOMPARE(rm.getUnit(), QString("x")); | |
115 QCOMPARE(rm.getValueForPosition(3), 10.0); | |
116 QCOMPARE(rm.getValueForPosition(7), 100000.0); | |
117 QCOMPARE(rm.getValueForPosition(5), 1000.0); | |
118 QCOMPARE(rm.getValueForPosition(6), 10000.0); | |
119 QCOMPARE(rm.getValueForPosition(0), rm.getValueForPosition(3)); | |
120 QCOMPARE(rm.getValueForPosition(9), rm.getValueForPosition(7)); | |
121 } | |
122 | |
123 void logDownBackward() | |
124 { | |
125 LogRangeMapper rm(3, 7, 10, 100000, "x", true); | |
126 QCOMPARE(rm.getUnit(), QString("x")); | |
127 QCOMPARE(rm.getValueForPosition(7), 10.0); | |
128 QCOMPARE(rm.getValueForPosition(3), 100000.0); | |
129 QCOMPARE(rm.getValueForPosition(5), 1000.0); | |
130 QCOMPARE(rm.getValueForPosition(4), 10000.0); | |
131 QCOMPARE(rm.getValueForPosition(0), rm.getValueForPosition(3)); | |
132 QCOMPARE(rm.getValueForPosition(9), rm.getValueForPosition(7)); | |
133 } | |
134 }; | |
135 | |
136 #endif | |
137 | |
138 |