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  }