30 lines
836 B
Go
30 lines
836 B
Go
package giftlimits
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestWorkUnitsAppliesCountAndFanoutCeilings(t *testing.T) {
|
|
if units, ok := WorkUnits(999, 5); !ok || units != 4_995 {
|
|
t.Fatalf("valid maximum-near workload mismatch: units=%d ok=%t", units, ok)
|
|
}
|
|
for _, input := range []struct {
|
|
count int64
|
|
targets int
|
|
}{{0, 1}, {1_000, 1}, {999, 6}, {1, 0}} {
|
|
if units, ok := WorkUnits(input.count, input.targets); ok || units != 0 {
|
|
t.Fatalf("invalid workload accepted: %+v units=%d", input, units)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestValidCommandIDUsesTrimmedNonEmptyByteBound(t *testing.T) {
|
|
if !ValidCommandID(" combo-1:42 ") {
|
|
t.Fatal("normal stable combo command id was rejected")
|
|
}
|
|
if ValidCommandID(" ") || ValidCommandID(strings.Repeat("x", MaxCommandIDBytes+1)) {
|
|
t.Fatal("empty or oversized command id was accepted")
|
|
}
|
|
}
|