You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

57 lines
1.1 KiB

package main
import (
"math/rand"
"unicode"
"./student"
"github.com/01-edu/public/go/lib"
)
func isPrintable(s string) bool {
for _, r := range s {
if !unicode.IsPrint(r) {
return false
}
}
return true
}
func main() {
// 15 unvalid strings in the table
table := lib.MultRandASCII()
// 15 valid lowercase strings of random size between 1 and 20 letters in the table
for i := 0; i < 15; i++ {
letters := []rune("\a\b\f\r\n\v\t")
size := lib.RandIntBetween(1, 20)
r := make([]rune, size)
for i := range r {
r[i] = letters[rand.Intn(len(letters))]
}
table = append(table, string(r))
}
// Special cases added to table
table = append(table,
"Hello! How are you?",
"a",
"z",
"!",
"HelloHowareyou",
"What's this 4?",
"Whatsthis4",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!",
"0123456789",
"01,02,03",
"abcdefghijklmnopqrstuvwxyz",
"hello",
"hello!",
"hello\n",
"\n",
)
for _, arg := range table {
lib.Challenge("IsPrintable", student.IsPrintable, isPrintable, arg)
}
}