github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgMath/FloatCompare_test.go (about)

     1  package kmgMath
     2  
     3  import "testing"
     4  import "github.com/bronze1man/kmg/kmgTest"
     5  
     6  func TestFloatCompare(ot *testing.T) {
     7  	for i, testCase := range []struct {
     8  		f      func(x float64, y float64) bool
     9  		x      float64
    10  		y      float64
    11  		result bool
    12  	}{
    13  		{Float64LessThan, 1.0, 2.0, true},
    14  		{Float64LessThan, 2.0, 1.0, false},
    15  		{Float64LessThan, 2.0, 2.0, false},
    16  		{Float64LessEqualThan, 1.0, 2.0, true},
    17  		{Float64LessEqualThan, 1.0, 1.0, true},
    18  		{Float64LessEqualThan, 2.0, 1.0, false}, //5
    19  
    20  		{Float64GreaterThan, 1.0, 2.0, false},
    21  		{Float64GreaterThan, 2.0, 1.0, true},
    22  		{Float64GreaterThan, 1.0, 1.0, false},
    23  		{Float64Equal, 1.0, 1.0, true},
    24  		{Float64Equal, 1.0, 2.0, false}, //10
    25  
    26  		{Float64Equal, 1.0 / 3.0 * 3.0, 1.0, true},
    27  		{Float64GreaterEqualThan, 1.0, 2.0, false},
    28  		{Float64GreaterEqualThan, 2.0, 1.0, true},
    29  		{Float64GreaterEqualThan, 1.0, 1.0, true},
    30  	} {
    31  		kmgTest.Equal(testCase.f(testCase.x, testCase.y), testCase.result,
    32  			"fail at %d", i)
    33  	}
    34  }