mirror of https://github.com/01-edu/public.git
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.
51 lines
1.0 KiB
51 lines
1.0 KiB
package student_test |
|
|
|
import ( |
|
"math/rand" |
|
"testing" |
|
|
|
"github.com/01-edu/z01" |
|
|
|
solutions "./solutions" |
|
student "./student" |
|
) |
|
|
|
func TestIsPrintable(t *testing.T) { |
|
// 15 unvalid strings in the table |
|
table := z01.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 := z01.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 { |
|
z01.Challenge(t, student.IsPrintable, solutions.IsPrintable, arg) |
|
} |
|
}
|
|
|