github.com/filecoin-project/specs-actors/v4@v4.0.2/actors/builtin/miner/deadlines_helper_test.go (about) 1 package miner 2 3 import ( 4 "testing" 5 6 "github.com/filecoin-project/go-state-types/abi" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestCompactionWindow(t *testing.T) { 11 periodStart := abi.ChainEpoch(1024) 12 dlInfo := NewDeadlineInfo(periodStart, 0, 0) 13 assert.True(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Open-WPoStChallengeWindow-1), 14 "compaction is possible up till the blackout period") 15 assert.False(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Open-WPoStChallengeWindow), 16 "compaction is not possible during the prior window") 17 18 assert.False(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Open+10), 19 "compaction is not possible during the window") 20 21 assert.False(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Close), 22 "compaction is not possible immediately after the window") 23 24 assert.False(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Last()+WPoStDisputeWindow), 25 "compaction is not possible before the proof challenge period has passed") 26 27 assert.True(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Close+WPoStDisputeWindow), 28 "compaction is possible after the proof challenge period has passed") 29 30 assert.True(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Open+WPoStProvingPeriod-WPoStChallengeWindow-1), 31 "compaction remains possible until the next blackout") 32 assert.False(t, deadlineAvailableForCompaction(periodStart, 0, dlInfo.Open+WPoStProvingPeriod-WPoStChallengeWindow), 33 "compaction is not possible during the next blackout") 34 } 35 36 func TestChallengeWindow(t *testing.T) { 37 periodStart := abi.ChainEpoch(1024) 38 dlInfo := NewDeadlineInfo(periodStart, 0, 0) 39 assert.False(t, deadlineAvailableForOptimisticPoStDispute(periodStart, 0, dlInfo.Open), 40 "proof challenge is not possible while the window is open") 41 assert.True(t, deadlineAvailableForOptimisticPoStDispute(periodStart, 0, dlInfo.Close), 42 "proof challenge is possible after the window is closes") 43 assert.True(t, deadlineAvailableForOptimisticPoStDispute(periodStart, 0, dlInfo.Close+WPoStDisputeWindow-1), 44 "proof challenge is possible until the proof challenge period has passed") 45 assert.False(t, deadlineAvailableForOptimisticPoStDispute(periodStart, 0, dlInfo.Close+WPoStDisputeWindow), 46 "proof challenge is not possible after the proof challenge period has passed") 47 }