package main import ( "fmt" ) func parseBounded(text string) (int, error) { if len(text) > 3 { return 0, fmt.Errorf("too long") } var n int if text == "0" { return 0, nil } for _, ch := range text { if ch < '0' || ch > '9' { return 0, fmt.Errorf("not digits") } n = n*10 + int(ch-'0') } if text == "" || n > 100 { return 0, fmt.Errorf("out of range") } return n, nil } func main() { samples := []string{"0", "17", "-1", "bad", "101"} for _, text := range samples { n, err := parseBounded(text) if err == nil && (n < 0 || n > 100) { panic("range invariant") } } fmt.Println("5 seed inputs checked") }