@@ -63,35 +63,61 @@ TEST(NumberTest, ScaleFloatingPoint)
63
63
TEST (NumberTest, MapIntegral)
64
64
{
65
65
EXPECT_EQ (ksn::map (5 , 2 , 4 , 0 , 1 ), 1 ) <<
66
- " 5 - 2 = 3\n "
66
+ " min(5, max(2, 4)) = 4\n "
67
+ " max(4, min(2, 4)) = 4\n "
68
+ " 4 - 2 = 2\n "
67
69
" 4 - 2 = 2\n "
68
70
" 1 - 0 = 1\n "
69
- " scale(3 , 2, 1) = 1\n "
71
+ " scale(2 , 2, 1) = 1\n "
70
72
" 1 + 0 = 1" ;
71
73
72
- EXPECT_EQ (ksn::map (0 , -2 , -4 , 0 , 1 ), -1 ) <<
73
- " 0 - (-2) = 2\n "
74
+ EXPECT_EQ (ksn::map (0 , -2 , -4 , 0 , 1 ), 0 ) <<
75
+ " min(0, max(-2, -4)) = -2\n "
76
+ " max(-2, min(-2, -4)) = -2\n "
77
+ " -2 - (-2) = 0\n "
74
78
" -4 - (-2) = -2\n "
75
79
" 1 - 0 = 1\n "
76
- " scale(2, -2, 1) = -1\n "
77
- " -1 + 0 = -1" ;
80
+ " scale(0, -2, 1) = 0\n "
81
+ " 0 + 0 = 0" ;
82
+
83
+ EXPECT_EQ (ksn::map (10 , 3 , 11 , -2 , 2 ), -2 ) <<
84
+ " min(10, max(3, 11)) = 10\n "
85
+ " max(10, min(3, 11)) = 10\n "
86
+ " 10 - 3 = 7\n "
87
+ " 11 - 3 = 8\n "
88
+ " 2 - (-2) = 4\n "
89
+ " scale(7, 8, 4) = 0\n "
90
+ " 0 + (-2) = -2" ;
78
91
}
79
92
80
93
TEST (NumberTest, MapFloatingPoint)
81
94
{
82
95
EXPECT_DOUBLE_EQ (ksn::map (0.5 , 0.2 , 0.8 , 1.0 , 3.2 ), 2.1 ) <<
96
+ " min(0.5, max(0.2, 0.8)) = 0.5\n "
97
+ " max(0.5, min(0.2, 0.8)) = 0.5\n "
83
98
" 0.5 - 0.2 = 0.3\n "
84
99
" 0.8 - 0.2 = 0.6\n "
85
100
" 3.2 - 1.0 = 2.2\n "
86
- " scale(0.3 , 0.6, 2.2) = 1.1\n "
101
+ " scale(0.5 , 0.6, 2.2) = 1.1\n "
87
102
" 1.1 + 1.0 = 2.1" ;
88
103
89
- EXPECT_DOUBLE_EQ (ksn::map (-0.1 , 0.2 , 0.8 , -3.2 , -1.0 ), -4.3 ) <<
90
- " -0.1 - 0.2 = -0.3\n "
104
+ EXPECT_DOUBLE_EQ (ksn::map (-0.1 , 0.2 , 0.8 , -3.2 , -1.0 ), -3.2 ) <<
105
+ " min(-0.1, max(0.2, 0.8)) = -0.1\n "
106
+ " max(-0.1, min(0.2, 0.8)) = 0.2\n "
107
+ " 0.2 - 0.2 = 0.0\n "
91
108
" 0.8 - 0.2 = 0.6\n "
92
109
" -1.0 - (-3.2) = 2.2\n "
93
- " scale(-0.3, 0.6, 2.2) = -1.1\n "
94
- " -1.1 + (-3.2) = -4.3" ;
110
+ " scale(0.0, 0.6, 2.2) = 0.0\n "
111
+ " 0.0 + (-3.2) = -3.2" ;
112
+
113
+ EXPECT_DOUBLE_EQ (ksn::map (-1.5 , 5.0 , -2.5 , 7.0 , 13.0 ), 12.2 ) <<
114
+ " min(-1.5, max(5.0, -2.5)) = -1.5\n "
115
+ " max(-1.5, min(5.0, -2.5)) = -1.5\n "
116
+ " -1.5 - 5.0 = -6.5\n "
117
+ " -2.5 - 5.0 = -7.5\n "
118
+ " 13.0 - 7.0 = 6.0\n "
119
+ " scale(-6.5, -7.5, 6.0) = 5.2\n "
120
+ " 5.2 + 7.0 = 12.2" ;
95
121
}
96
122
97
123
TEST (NumberTest, ClampIntegral)
0 commit comments