Files
hakorune/apps/lib/json_native/tests/unit/utils_test.hako

72 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Utils層テスト - StringUtils & EscapeUtilsの動作確認
using "apps/lib/json_native/utils/string.hako" as StringUtils
using "apps/lib/json_native/utils/escape.hako" as EscapeUtils
print("🧪 Utils層テスト開始")
// ===== StringUtilsテスト =====
print("\n📝 StringUtilsテスト")
// トリム機能テスト
local trimmed = StringUtils.trim(" hello world ")
print("trim test: '" + trimmed + "'") // 期待値: 'hello world'
// 文字判定テスト
print("is_digit('5'): " + StringUtils.is_digit("5")) // true
print("is_digit('a'): " + StringUtils.is_digit("a")) // false
print("is_alpha('A'): " + StringUtils.is_alpha("A")) // true
print("is_alpha('1'): " + StringUtils.is_alpha("1")) // false
// 文字列検索テスト
print("index_of('hello', 'l'): " + StringUtils.index_of("hello", "l")) // 2
print("contains('hello', 'ell'): " + StringUtils.contains("hello", "ell")) // true
// 大文字小文字変換テスト
print("to_upper('hello'): " + StringUtils.to_upper("hello")) // HELLO
print("to_lower('WORLD'): " + StringUtils.to_lower("WORLD")) // world
// 配列結合テスト
local arr = new ArrayBox()
arr.push("a")
arr.push("b")
arr.push("c")
print("join test: " + StringUtils.join(arr, ",")) // a,b,c
// 数値判定・変換テスト
print("is_integer('42'): " + StringUtils.is_integer("42")) // true
print("is_integer('abc'): " + StringUtils.is_integer("abc")) // false
print("parse_integer('42'): " + StringUtils.parse_integer("42")) // 42
// ===== EscapeUtilsテスト =====
print("\n🔒 EscapeUtilsテスト")
// 基本エスケープテスト
print("escape_string('hello'): " + EscapeUtils.escape_string("hello"))
print("escape_string('say \"hi\"'): " + EscapeUtils.escape_string("say \"hi\""))
// クォート機能テスト
print("quote_string('hello'): " + EscapeUtils.quote_string("hello"))
// アンエスケープテスト
local escaped = "say \\\"hi\\\""
local unescaped = EscapeUtils.unescape_string(escaped)
print("unescape test: " + unescaped)
// クォート除去テスト
local quoted = "\"hello world\""
local unquoted = EscapeUtils.unquote_string(quoted)
print("unquote test: " + unquoted)
// 妥当性検証テスト
print("validate_string('hello'): " + EscapeUtils.validate_string("hello"))
print("validate_string('hello\\nworld'): " + EscapeUtils.validate_string("hello\\nworld"))
// 安全表示テスト
print("safe_display('hello\\tworld'): " + EscapeUtils.safe_display("hello\tworld"))
print("\n✅ Utils層テスト完了")
print("🎯 美しいモジュラー設計の威力を確認")