summaryrefslogtreecommitdiff
path: root/equals_test.go
blob: 93eabb726dca110c05d912acc7d6cb0d3e5cd481 (plain)
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
package float

import (
	"fmt"
	"testing"
)

func TestEquals(t *testing.T) {
	testCases := []struct {
		a, b   float64
		result bool
	}{
		{0.0, 0.0, true},
		{0.0000001, 0.0000001, true},
		{0.00000011, -0.00000012, true},
		{-0.00000011, 0.00000012, true},
		{-0.00000011, -0.00000012, true},
		{0.0000001, 0.0000002, true},
		{0.0000002, 0.0000001, true},
		{0.000002, 0.000001, false},
		{0.000001, 0.000002, false},
		{0.00001, 0.00002, false},
		{0.00002, 0.00001, false},
		{0.0000101, 0.0000201, false},
		{0.0000101, 0.0000102, true},
	}
	for _, tc := range testCases {
		name := fmt.Sprintf("%v==%v", tc.a, tc.b)
		t.Run(name, func(t *testing.T) {
			if Equals(tc.a, tc.b) != tc.result {
				t.Fail()
			}
		})
	}
}

func BenchmarkEquals(b *testing.B) {
	for i := 0; i < b.N; i++ {
		Equals(1.0, 1.0)
	}
}