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  }