|
| 1 | +package flags |
| 2 | + |
| 3 | +import ( |
| 4 | + "strconv" |
| 5 | + "testing" |
| 6 | + |
| 7 | + "github.com/OffchainLabs/prysm/v6/testing/require" |
| 8 | +) |
| 9 | + |
| 10 | +func TestValidateStateDiffExponents(t *testing.T) { |
| 11 | + tests := []struct { |
| 12 | + idx int |
| 13 | + exponents []int |
| 14 | + wantErr bool |
| 15 | + errMsg string |
| 16 | + }{ |
| 17 | + {idx: 1, exponents: []int{0, 1, 2}, wantErr: true, errMsg: "at least 5"}, |
| 18 | + {idx: 2, exponents: []int{1, 2, 3}, wantErr: true, errMsg: "at least 5"}, |
| 19 | + {idx: 3, exponents: []int{9, 8, 4}, wantErr: true, errMsg: "at least 5"}, |
| 20 | + {idx: 4, exponents: []int{3, 4, 5}, wantErr: true, errMsg: "decreasing"}, |
| 21 | + {idx: 5, exponents: []int{15, 14, 14, 12, 11}, wantErr: true, errMsg: "decreasing"}, |
| 22 | + {idx: 6, exponents: []int{15, 14, 13, 12, 11}, wantErr: false}, |
| 23 | + {idx: 7, exponents: []int{21, 18, 16, 13, 11, 9, 5}, wantErr: false}, |
| 24 | + {idx: 8, exponents: []int{30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 18, 16, 13, 11, 9, 5}, wantErr: true, errMsg: "between 1 and 15 values"}, |
| 25 | + {idx: 9, exponents: []int{}, wantErr: true, errMsg: "between 1 and 15 values"}, |
| 26 | + } |
| 27 | + |
| 28 | + for _, tt := range tests { |
| 29 | + t.Run(strconv.Itoa(tt.idx), func(t *testing.T) { |
| 30 | + err := validateStateDiffExponents(tt.exponents) |
| 31 | + if tt.wantErr { |
| 32 | + require.ErrorContains(t, tt.errMsg, err) |
| 33 | + } else { |
| 34 | + require.NoError(t, err) |
| 35 | + } |
| 36 | + }) |
| 37 | + } |
| 38 | +} |
0 commit comments