42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| //stm: #unit
 | |
| 
 | |
| package store
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 
 | |
| 	"github.com/filecoin-project/lotus/build"
 | |
| 	"github.com/filecoin-project/lotus/chain/types"
 | |
| )
 | |
| 
 | |
| func TestBaseFee(t *testing.T) {
 | |
| 	//stm: @CHAIN_STORE_COMPUTE_NEXT_BASE_FEE_001
 | |
| 	tests := []struct {
 | |
| 		basefee             uint64
 | |
| 		limitUsed           int64
 | |
| 		noOfBlocks          int
 | |
| 		preSmoke, postSmoke uint64
 | |
| 	}{
 | |
| 		{100e6, 0, 1, 87.5e6, 87.5e6},
 | |
| 		{100e6, 0, 5, 87.5e6, 87.5e6},
 | |
| 		{100e6, build.BlockGasTarget, 1, 103.125e6, 100e6},
 | |
| 		{100e6, build.BlockGasTarget * 2, 2, 103.125e6, 100e6},
 | |
| 		{100e6, build.BlockGasLimit * 2, 2, 112.5e6, 112.5e6},
 | |
| 		{100e6, (build.BlockGasLimit * 15) / 10, 2, 110937500, 106.250e6},
 | |
| 	}
 | |
| 
 | |
| 	for _, test := range tests {
 | |
| 		test := test
 | |
| 		t.Run(fmt.Sprintf("%v", test), func(t *testing.T) {
 | |
| 			preSmoke := ComputeNextBaseFee(types.NewInt(test.basefee), test.limitUsed, test.noOfBlocks, build.UpgradeSmokeHeight-1)
 | |
| 			assert.Equal(t, fmt.Sprintf("%d", test.preSmoke), preSmoke.String())
 | |
| 
 | |
| 			postSmoke := ComputeNextBaseFee(types.NewInt(test.basefee), test.limitUsed, test.noOfBlocks, build.UpgradeSmokeHeight+1)
 | |
| 			assert.Equal(t, fmt.Sprintf("%d", test.postSmoke), postSmoke.String())
 | |
| 		})
 | |
| 	}
 | |
| }
 |