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