use v6-alpha; use Test; =pod Basic tests for the ord() and chr() built-in. =cut # L # L # What is the best way to test 0 through 31?? my @maps = ( " ", 32, "!", 33, "\"", 34, "#", 35, "$", 36, "%", 37, "&", 38, "\'", 39, "(", 40, ")", 41, "*", 42, "+", 43, ",", 44, "-", 45, ".", 46, "/", 47, "0", 48, "1", 49, "2", 50, "3", 51, "4", 52, "5", 53, "6", 54, "7", 55, "8", 56, "9", 57, ":", 58, ";", 59, "<", 60, "=", 61, ">", 62, "?", 63, "@", 64, "A", 65, "B", 66, "C", 67, "D", 68, "E", 69, "F", 70, "G", 71, "H", 72, "I", 73, "J", 74, "K", 75, "L", 76, "M", 77, "N", 78, "O", 79, "P", 80, "Q", 81, "R", 82, "S", 83, "T", 84, "U", 85, "V", 86, "W", 87, "X", 88, "Y", 89, "Z", 90, "[", 91, "\\", 92, "]", 93, "^", 94, "_", 95, "`", 96, "a", 97, "b", 98, "c", 99, "d", 100, "e", 101, "f", 102, "g", 103, "h", 104, "i", 105, "j", 106, "k", 107, "l", 108, "m", 109, "n", 110, "o", 111, "p", 112, "q", 113, "r", 114, "s", 115, "t", 116, "u", 117, "v", 118, "w", 119, "x", 120, "y", 121, "z", 122, "|", 124, "}", 125, "~", 126, # Unicode tests "ä", 228, "€", 8364, "»", 187, "«", 171, # Special chars "\o00", 0, "\o01", 1, "\o03", 3, ); plan 32+@maps; for @maps -> $char, $code { my $descr = "\\{$code}{$code >= 32 ?? " == '{$char}'" !! ""}"; is ord($char), $code, "ord() works for $descr"; is chr($code), $char, "chr() works for $descr"; } for 0..31 -> $code { my $char = chr($code); is ord($char), $code, "ord(chr($code)) is $code"; }