///|
fn main {
// Demo of fuzzy search functionality
let pattern = "cat"
let text = "concatenate"
println("=== Simple Fuzzy Search Demo ===")
println("Pattern: \{pattern}")
println("Text: \{text}")
// println("Match: \{@lib.fuzzy_match(pattern, text)}")
// println("Score: \{@lib.fuzzy_score(pattern, text)}")
// Test case-insensitive matching
let pattern2 = "MOON"
let text2 = "MoonBit"
println("")
println("=== Case-insensitive Demo ===")
println("Pattern: \{pattern2}")
println("Text: \{text2}")
// println("Match: \{@lib.fuzzy_match_ignore_case(pattern2, text2)}")
// println("Score: \{@lib.fuzzy_score_ignore_case(pattern2, text2)}")
// Demo VS Code algorithm
println("")
println("=== VS Code Algorithm Demo ===")
let (score3, positions3) = @lib.vscode_fuzzy_score_simple(pattern, text, true)
println("Pattern: \{pattern}")
println("Text: \{text}")
println("VS Code Score: \{score3}")
let positions3_text = positions3.map(fn(i) { i.to_string() }).join(", ")
println("Match Positions: [\{positions3_text}]")
// Test your specific example
println("")
println("=== Your Example: 'swt' vs 'ss_ww_tt' ===")
let pattern4 = "swt"
let text4 = "ss_ww_tt"
let (score4, positions4) = @lib.vscode_fuzzy_score_simple(
pattern4, text4, true,
)
println("Pattern: \{pattern4}")
println("Text: \{text4}")
// println("Simple Score: \{@lib.fuzzy_score(pattern4, text4)}")
println("VS Code Score: \{score4}")
let positions4_text = positions4.map(fn(i) { i.to_string() }).join(", ")
println("Match Positions: [\{positions4_text}]")
}