package mathext import "testing" func TestFloat64EpsilonEqExactlyEqual(t *testing.T) { if !Float64EpsilonEq(1.0, 1.0, 1e-9) { t.Errorf("Float64EpsilonEq(1.0, 1.0, 1e-9) = false, want true") } } func TestFloat64EpsilonEqWithinEpsilon(t *testing.T) { if !Float64EpsilonEq(1.0, 1.0+1e-10, 1e-9) { t.Errorf("Float64EpsilonEq(1.0, 1.0+1e-10, 1e-9) = false, want true") } } func TestFloat64EpsilonEqOutsideEpsilon(t *testing.T) { if Float64EpsilonEq(1.0, 1.1, 1e-9) { t.Errorf("Float64EpsilonEq(1.0, 1.1, 1e-9) = true, want false") } } func TestFloat64EpsilonEqAtEpsilonBoundary(t *testing.T) { if !Float64EpsilonEq(0.0, 0.5, 0.5) { t.Errorf("Float64EpsilonEq(0.0, 0.5, 0.5) = false, want true") } } func TestFloat64EpsilonEqNegativeDifference(t *testing.T) { if !Float64EpsilonEq(2.0, 2.0-1e-10, 1e-9) { t.Errorf("Float64EpsilonEq(2.0, 2.0-1e-10, 1e-9) = false, want true") } } func TestFloat64EpsilonEqLargeDifference(t *testing.T) { if Float64EpsilonEq(0.0, 100.0, 0.5) { t.Errorf("Float64EpsilonEq(0.0, 100.0, 0.5) = true, want false") } } func TestFloat64EpsilonEqNegativeNumbers(t *testing.T) { if !Float64EpsilonEq(-1.0, -1.0+1e-10, 1e-9) { t.Errorf("Float64EpsilonEq(-1.0, -1.0+1e-10, 1e-9) = false, want true") } } func TestFloat64EpsilonEqZeroEpsilonEqualValues(t *testing.T) { if !Float64EpsilonEq(3.14, 3.14, 0.0) { t.Errorf("Float64EpsilonEq(3.14, 3.14, 0.0) = false, want true") } } func TestFloat64EpsilonEqZeroEpsilonDifferentValues(t *testing.T) { if Float64EpsilonEq(3.14, 3.15, 0.0) { t.Errorf("Float64EpsilonEq(3.14, 3.15, 0.0) = true, want false") } }