decred.org/dcrdex@v1.0.5/dex/asset_test.go (about) 1 package dex 2 3 import "testing" 4 5 func TestConventionalString(t *testing.T) { 6 type test struct { 7 v uint64 8 unitInfo UnitInfo 9 exp string 10 } 11 12 ui := func(r uint64) UnitInfo { 13 return UnitInfo{ 14 Conventional: Denomination{ 15 ConversionFactor: r, 16 }, 17 } 18 } 19 20 tests := []test{ 21 { // integer with no decimal part still displays zeros. 22 v: 100000000, 23 unitInfo: ui(1e8), 24 exp: "1.00000000", 25 }, 26 { // trailing zeroes are displayed. 27 v: 10, 28 unitInfo: ui(1e3), 29 exp: "0.010", 30 }, 31 { // gwei 32 v: 123, 33 unitInfo: ui(1e9), 34 exp: "0.000000123", 35 }, 36 { // no thousands delimiters 37 v: 1000000, 38 unitInfo: ui(1e3), 39 exp: "1000.000", 40 }, 41 } 42 43 for _, tt := range tests { 44 s := tt.unitInfo.ConventionalString(tt.v) 45 if s != tt.exp { 46 t.Fatalf("unexpected output for value %d, expected %q, got %q", tt.v, tt.exp, s) 47 } 48 } 49 } 50 51 func Test_IntDivUp(t *testing.T) { 52 tests := []struct { 53 val, div int64 54 want int64 55 }{ 56 {-1, 2, 0}, 57 {-1, 1, -1}, 58 {0, 1, 0}, 59 {1, 1, 1}, 60 {1, 2, 1}, 61 {3, 2, 2}, 62 {3, 500, 1}, 63 {1500, 500, 3}, 64 {1501, 500, 4}, 65 {23000, 1000, 23}, 66 {23105, 1000, 24}, 67 {24000, 1000, 24}, 68 } 69 for _, tt := range tests { 70 if got := IntDivUp(tt.val, tt.div); got != tt.want { 71 t.Errorf("intDivUp() = %v, want %v", got, tt.want) 72 } 73 } 74 }