decred.org/dcrwallet/v3@v3.1.0/wallet/txrules/poolfees_test.go (about)

     1  package txrules_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	. "decred.org/dcrwallet/v3/wallet/txrules"
     7  	"github.com/decred/dcrd/chaincfg/v3"
     8  	"github.com/decred/dcrd/dcrutil/v4"
     9  )
    10  
    11  func TestStakePoolTicketFee(t *testing.T) {
    12  	params := chaincfg.MainNetParams()
    13  	tests := []struct {
    14  		StakeDiff dcrutil.Amount
    15  		Fee       dcrutil.Amount
    16  		Height    int32
    17  		PoolFee   float64
    18  		Expected  dcrutil.Amount
    19  	}{
    20  		0: {10 * 1e8, 0.01 * 1e8, 25000, 1.00, 0.01500463 * 1e8},
    21  		1: {20 * 1e8, 0.01 * 1e8, 25000, 1.00, 0.01621221 * 1e8},
    22  		2: {5 * 1e8, 0.05 * 1e8, 50000, 2.59, 0.03310616 * 1e8},
    23  		3: {15 * 1e8, 0.05 * 1e8, 50000, 2.59, 0.03956376 * 1e8},
    24  	}
    25  	for i, test := range tests {
    26  		poolFeeAmt := StakePoolTicketFee(test.StakeDiff, test.Fee, test.Height,
    27  			test.PoolFee, params, false)
    28  		if poolFeeAmt != test.Expected {
    29  			t.Errorf("Test %d: Got %v: Want %v", i, poolFeeAmt, test.Expected)
    30  		}
    31  	}
    32  }