Skip to content

Commit 2b7dfed

Browse files
committed
test: Increase test coverage for convert
Adds more tests for the convert package to increase overall test coverage. - Adds tests for FromFloat64 and ToFloat64 in convert_extra_test.go.
1 parent 0df0a8f commit 2b7dfed

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

convert_extra_test.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,24 +144,38 @@ func TestFloat64Conversions(t *testing.T) {
144144
{"FromFloat64(1)", 1, 0, FromFloat64(1), "FromFloat64"},
145145
{"FromFloat64(-1)", -1, 0, FromFloat64(-1), "FromFloat64"},
146146
{"FromFloat64(65504)", 65504, 0, FromFloat64(65504), "FromFloat64"},
147+
{"FromFloat64(Inf)", math.Inf(1), 0, PositiveInfinity, "FromFloat64"},
148+
{"FromFloat64(-Inf)", math.Inf(-1), 0, NegativeInfinity, "FromFloat64"},
149+
{"FromFloat64(NaN)", math.NaN(), 0, QuietNaN, "FromFloat64"},
147150

148151
// ToFloat64
149152
{"ToFloat64(0)", 0, FromFloat64(0), float64(0), "ToFloat64"},
150153
{"ToFloat64(1)", 0, FromFloat64(1), float64(1), "ToFloat64"},
151154
{"ToFloat64(-1)", 0, FromFloat64(-1), float64(-1), "ToFloat64"},
155+
{"ToFloat64(Inf)", 0, PositiveInfinity, math.Inf(1), "ToFloat64"},
156+
{"ToFloat64(-Inf)", 0, NegativeInfinity, math.Inf(-1), "ToFloat64"},
157+
{"ToFloat64(NaN)", 0, QuietNaN, math.NaN(), "ToFloat64"},
152158
}
153159

154160
for _, tc := range testCases {
155161
t.Run(tc.name, func(t *testing.T) {
156162
switch tc.op {
157163
case "FromFloat64":
158164
res := FromFloat64(tc.f64)
159-
if res.Bits() != tc.expected.(Float16).Bits() {
165+
if tc.expected.(Float16).IsNaN() {
166+
if !res.IsNaN() {
167+
t.Errorf("Expected NaN, got %v", res)
168+
}
169+
} else if res.Bits() != tc.expected.(Float16).Bits() {
160170
t.Errorf("Expected %v, got %v", tc.expected, res)
161171
}
162172
case "ToFloat64":
163173
res := tc.f16.ToFloat64()
164-
if res != tc.expected.(float64) {
174+
if math.IsNaN(tc.expected.(float64)) {
175+
if !math.IsNaN(res) {
176+
t.Errorf("Expected NaN, got %v", res)
177+
}
178+
} else if res != tc.expected.(float64) {
165179
t.Errorf("Expected %v, got %v", tc.expected, res)
166180
}
167181
}

0 commit comments

Comments
 (0)