Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions src/char/ascii_test.mbt
Original file line number Diff line number Diff line change
@@ -1,64 +1,64 @@
///|
test "to_ascii_lower uppercase to lowercase" {
inspect(to_ascii_lower('A'), content="a")
inspect(to_ascii_lower('Z'), content="z")
inspect(to_ascii_lower('M'), content="m")
inspect(@char.to_ascii_lower('A'), content="a")
inspect(@char.to_ascii_lower('Z'), content="z")
inspect(@char.to_ascii_lower('M'), content="m")
}

///|
test "to_ascii_upper: convert lowercase to uppercase" {
inspect(to_ascii_upper('a'), content="A")
inspect(to_ascii_upper('z'), content="Z")
inspect(@char.to_ascii_upper('a'), content="A")
inspect(@char.to_ascii_upper('z'), content="Z")
}

///|
test "to_ascii_upper: keep uppercase unchanged" {
inspect(to_ascii_upper('A'), content="A")
inspect(@char.to_ascii_upper('A'), content="A")
}

///|
test "to_ascii_upper: keep non-letters unchanged" {
inspect(to_ascii_upper('1'), content="1")
inspect(to_ascii_upper('@'), content="@")
inspect(@char.to_ascii_upper('1'), content="1")
inspect(@char.to_ascii_upper('@'), content="@")
}

///|
test "is_ascii_graphic with graphic chars" {
// Test with exclamation mark (first graphic char)
inspect(is_ascii_graphic('!'), content="true")
inspect(@char.is_ascii_graphic('!'), content="true")
// Test with tilde (last graphic char)
inspect(is_ascii_graphic('~'), content="true")
inspect(@char.is_ascii_graphic('~'), content="true")
// Test with some middle graphic chars
inspect(is_ascii_graphic('A'), content="true")
inspect(is_ascii_graphic('5'), content="true")
inspect(@char.is_ascii_graphic('A'), content="true")
inspect(@char.is_ascii_graphic('5'), content="true")
}

///|
test "is_ascii_graphic with non-graphic chars" {
// Test with chars before '!'
inspect(is_ascii_graphic(' '), content="false")
inspect(@char.is_ascii_graphic(' '), content="false")
// Test with chars after '~'
inspect(is_ascii_graphic('\u007F'), content="false")
inspect(@char.is_ascii_graphic('\u007F'), content="false")
}

///|
test "ascii_octdigit_to_int normal cases" {
inspect(ascii_octdigit_to_int('0'), content="0")
inspect(ascii_octdigit_to_int('3'), content="3")
inspect(ascii_octdigit_to_int('7'), content="7")
inspect(@char.ascii_octdigit_to_int('0'), content="0")
inspect(@char.ascii_octdigit_to_int('3'), content="3")
inspect(@char.ascii_octdigit_to_int('7'), content="7")
}

///|
test "panic ascii_octdigit_to_int invalid input" {
ignore(ascii_octdigit_to_int('8'))
ignore(@char.ascii_octdigit_to_int('8'))
}

///|
test "panic ascii_hexdigit_to_int non hex char" {
ignore(ascii_hexdigit_to_int('g'))
ignore(@char.ascii_hexdigit_to_int('g'))
}

///|
test "panic ascii_digit_to_int with non-digit" {
ignore(ascii_digit_to_int('a'))
ignore(@char.ascii_digit_to_int('a'))
}
16 changes: 8 additions & 8 deletions src/char/moon.pkg.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"pre-build": [
{
"input": ["gen_entities.py", "entities.json"],
"output": "entities.mbt",
"command": "python3 $input $output"
}
]
}
// "pre-build": [
// {
// "input": ["gen_entities.py", "entities.json"],
// "output": "entities.mbt",
// "command": "python3 $input $output"
// }
// ]
}
10 changes: 5 additions & 5 deletions src/char/rune_test.mbt
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
///|
test "length_utf8 with multibyte char 1" {
inspect(length_utf8('¢'), content="2")
inspect(@char.length_utf8('¢'), content="2")
}

///|
test "length_utf8 with multibyte char 2" {
inspect(length_utf8('€'), content="3")
inspect(@char.length_utf8('€'), content="3")
}

///|
test "length_utf8 with multibyte char 3" {
inspect(length_utf8('🌍'), content="4")
inspect(@char.length_utf8('🌍'), content="4")
}

///|
test "panic length_utf8 with invalid char" {
let invalid = 0x110000
ignore(length_utf8(invalid))
ignore(@char.length_utf8(invalid))
}

///|
test "length_utf32 returns 1" {
inspect(length_utf32('A'), content="1")
inspect(@char.length_utf32('A'), content="1")
}
Loading
Loading