github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/store/mainchain/account_level/level_math_test.go (about)

     1  package account_level
     2  
     3  import (
     4  	"fmt"
     5  	"math/big"
     6  	"testing"
     7  )
     8  
     9  func TestAA(t *testing.T) {
    10  	l, _ := big.NewInt(0).SetString("100000000000000000000000000", 10)
    11  	r := big.NewInt(30)
    12  
    13  	/*lf := big.NewFloat(0).SetInt(l)
    14  	rf := big.NewFloat(0).SetInt(r)*/
    15  
    16  	//rat := big.NewRat(0, 1).SetFrac(l, r)
    17  
    18  	yl := new(big.Rat).SetInt(l)
    19  	tl := new(big.Rat).SetInt(r)
    20  	fmt.Println(yl, tl)
    21  	fmt.Println(tl.Sub(tl, yl))
    22  	rat := big.NewRat(18, 10)
    23  
    24  	m := new(big.Rat)
    25  	rTmp := m.Mul(yl, rat).Mul(m, big.NewRat(1, 8640))
    26  
    27  	rfTmp := big.NewFloat(0).SetRat(rTmp)
    28  	rfTmp.Uint64()
    29  	fmt.Println("float string:", rfTmp.Prec())
    30  
    31  	b, oc := rfTmp.Int(big.NewInt(0))
    32  	fmt.Println(rTmp)
    33  	fmt.Println(b, oc)
    34  	fmt.Println(30000 * 10000000000 * 8640 * 2)
    35  
    36  }
    37  func TestPer(t *testing.T) {
    38  	dis := []*big.Int{
    39  		big.NewInt(1000000),
    40  		big.NewInt(2000000),
    41  		big.NewInt(3000000),
    42  		big.NewInt(2000000),
    43  		big.NewInt(1000000),
    44  		big.NewInt(2000000),
    45  		big.NewInt(3000000),
    46  		big.NewInt(2000000),
    47  		big.NewInt(1000000),
    48  	}
    49  	math := newLvlMath(1, 1)
    50  	bl := math.pull(1, big.NewInt(25000))
    51  	if bl {
    52  		r := math.r()
    53  		m := math.m(r)
    54  		d := math.d(r)
    55  		amouts := math.v(r, m, d, dis)
    56  		fmt.Println("No.1:", r, m, d, amouts)
    57  	}
    58  
    59  	bl = math.pull(2, big.NewInt(30000))
    60  	if bl {
    61  		r := math.r()
    62  		m := math.m(r)
    63  		d := math.d(r)
    64  		amouts := math.v(r, m, d, dis)
    65  		fmt.Println("No.2:", r, m, d, amouts)
    66  	}
    67  	bl = math.pull(3, big.NewInt(40000))
    68  	if bl {
    69  		r := math.r()
    70  		m := math.m(r)
    71  		d := math.d(r)
    72  		amouts := math.v(r, m, d, dis)
    73  		fmt.Println("No.3:", r, m, d, amouts)
    74  	}
    75  	bl = math.pull(4, big.NewInt(50000))
    76  	if bl {
    77  		r := math.r()
    78  		m := math.m(r)
    79  		d := math.d(r)
    80  		amouts := math.v(r, m, d, dis)
    81  		fmt.Println("No.4:", r, m, d, amouts)
    82  	}
    83  	bl = math.pull(5, big.NewInt(60100))
    84  	if bl {
    85  		r := math.r()
    86  		m := math.m(r)
    87  		d := math.d(r)
    88  		amouts := math.v(r, m, d, dis)
    89  		fmt.Println("No.5:", r, m, d, amouts)
    90  	}
    91  	bl = math.pull(6, big.NewInt(50000))
    92  	if bl {
    93  		r := math.r()
    94  		m := math.m(r)
    95  		d := math.d(r)
    96  		amouts := math.v(r, m, d, dis)
    97  		fmt.Println("No.6:", r, m, d, amouts)
    98  	}
    99  }