github.com/Anderson-Lu/gobox@v0.0.0-20191127065433-3e6c4c2da420/number/number_helper_test.go (about) 1 package number 2 3 import ( 4 "fmt" 5 "math" 6 "testing" 7 ) 8 9 func TestCalcDigist(t *testing.T) { 10 type args struct { 11 n float64 12 } 13 tests := []struct { 14 name string 15 args args 16 want int 17 }{ 18 {name: "测试精度获取1", args: args{n: 0.1}, want: 1}, 19 {name: "测试精度获取2", args: args{n: 0.01}, want: 2}, 20 {name: "测试精度获取2", args: args{n: 0.001}, want: 3}, 21 {name: "测试精度获取2", args: args{n: 0.0001}, want: 4}, 22 {name: "测试精度获取2", args: args{n: 0.00001}, want: 5}, 23 {name: "测试精度获取2", args: args{n: 0.000001}, want: 6}, 24 {name: "测试精度获取2", args: args{n: 0.00000000001}, want: -1}, 25 } 26 for _, tt := range tests { 27 t.Run(tt.name, func(t *testing.T) { 28 if got := CalcDigist(tt.args.n); got != tt.want { 29 t.Errorf("CalcDigist() = %v, want %v", got, tt.want) 30 } 31 }) 32 } 33 } 34 35 func TestLn(t *testing.T) { 36 if math.Abs(Ln(10)-2.302585) > 0.000001 { 37 t.Errorf("clac error,result=%f,want=%f", Ln(10), 2.302585) 38 } 39 } 40 41 func TestRound(t *testing.T) { 42 type args struct { 43 f float64 44 n int 45 } 46 tests := []struct { 47 name string 48 args args 49 want float64 50 }{ 51 {name: "测试", args: args{f: 789.9999, n: 3}, want: 789.999}, 52 {name: "测试", args: args{f: 0.9999, n: 3}, want: 0.999}, 53 {name: "测试", args: args{f: 0.00019, n: 3}, want: 0.00019}, 54 {name: "测试", args: args{f: 188888, n: 3}, want: 188888}, 55 {name: "测试", args: args{f: 18.001, n: 3}, want: 18.001}, 56 {name: "测试", args: args{f: 18.0012, n: 3}, want: 18.001}, 57 {name: "测试", args: args{f: 18.0015, n: 3}, want: 18.001}, 58 } 59 for _, tt := range tests { 60 t.Run(tt.name, func(t *testing.T) { 61 if got := Round(tt.args.f, tt.args.n); got != tt.want { 62 fmt.Println(got) 63 t.Errorf("Round() = %v, want %v", got, tt.want) 64 } 65 }) 66 } 67 }