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  }