Test/test.ps1
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 . ..\Core.ps1 $cases = @( @("我是一个带有表情👨👩👧👦的目录", 21, 1, "我是一个带有表情👨👩👧👦../"), @("我是一个带有表情👨👩👧👦的目录", 22, 1, "我是一个带有表情👨👩👧👦.../"), @("我是一个带有表情👨👩👧👦的目录", 23, 1, "我是一个带有表情👨👩👧👦的../"), @("我是一个带有表情👨👩👧👦的文件.txt", 22, 0, "我是一个带有表情...txt"), @("我是一个带有表情👨👩👧👦的文件.txt", 23, 0, "我是一个带有表情👨👩👧👦..txt"), @("我是一个带有表情👨👩👧👦的文件.txt", 24, 0, "我是一个带有表情👨👩👧👦...txt"), @("我是一个带有$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 27, 0, "我是一个带有$([char]27)[38;5;196m颜色表情👨👩👧👦..txt$([char]27)[0m"), @("我是一个带有$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 27, 0, "我是一个带有$([char]27)[38;5;196m颜色表情👨👩👧👦..txt$([char]27)[0m"), @("👨👩👧👦的文件.txt", 7, 0, "👨👩👧👦..txt"), @("👨👩👧👦的文件.txt", 6, 0, "👨👩👧👦的.."), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 7, 0, "$([char]27)[38;5;196m颜..txt$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 6, 0, "$([char]27)[38;5;196m颜色..$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 4, 0, "$([char]27)[38;5;196m颜..$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 3, 0, "$([char]27)[38;5;196m...$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 2, 0, "$([char]27)[38;5;196m..$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 1, 0, "$([char]27)[38;5;196m.$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", 0, 0, "$([char]27)[38;5;196m$([char]27)[0m"), @("$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m", -1, 0, "$([char]27)[38;5;196m颜色表情👨👩👧👦的文件.txt$([char]27)[0m"), @("$([char]27)[38;5;196mdir\\\$([char]27)[0m", 4, 1, "$([char]27)[38;5;196mdir/$([char]27)[0m"), @("$([char]27)[38;5;196mdir$([char]27)[0m", 4, 1, "$([char]27)[38;5;196mdir/$([char]27)[0m"), @("$([char]27)[38;5;196mdir\$([char]27)[0m", 4, 1, "$([char]27)[38;5;196mdir/$([char]27)[0m"), @("$([char]27)[38;5;196mdir\$([char]27)[0m", 3, 1, "$([char]27)[38;5;196m../$([char]27)[0m"), @("$([char]27)[38;5;196mü .txt$([char]27)[0m", 4, 0, "$([char]27)[38;5;196mü..$([char]27)[0m"), @("$([char]27)[38;5;196m\$([char]27)[0m", -1, 1, "$([char]27)[38;5;196m/$([char]27)[0m"), @("$([char]27)[38;5;196m\\$([char]27)[0m", -1, 1, "$([char]27)[38;5;196m/$([char]27)[0m"), @("$([char]27)[38;5;196mdir\$([char]27)[0m", -1, 1, "$([char]27)[38;5;196mdir/$([char]27)[0m"), @("$([char]27)[38;5;196mdir\\\$([char]27)[0m", -1, 1, "$([char]27)[38;5;196mdir/$([char]27)[0m"), @("$([char]27)[38;5;196mdir$([char]27)[0m", -1, 1, "$([char]27)[38;5;196mdir/$([char]27)[0m"), @("$([char]27)[38;5;196md👨👩👧👦$([char]27)[38;5;208m/\i$([char]27)[38;5;220m\\\\👨👩👧👦$([char]27)[38;5;40mr$([char]27)[0m", -1, 1, "$([char]27)[38;5;196md👨👩👧👦$([char]27)[38;5;208m/i$([char]27)[38;5;220m/👨👩👧👦$([char]27)[38;5;40mr/$([char]27)[0m"), @("$([char]27)[38;5;196md👨👩👧👦$([char]27)[38;5;208m/\i\\$([char]27)[38;5;220m\\$([char]27)[38;5;208m\\👨👩👧👦$([char]27)[38;5;40mr$([char]27)[0m", -1, 1, "$([char]27)[38;5;196md👨👩👧👦$([char]27)[38;5;208m/i/👨👩👧👦$([char]27)[38;5;40mr/$([char]27)[0m") ) foreach ($c in $cases) { $o = VisualWidthTruncate -Text $c[0] -MaxWidth $c[1] -Mode $c[2] $ok = ($o -ceq $c[3]) if ($ok) { $status = 'PASS' }else { $status = 'FAIL' } $bO = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($o)) $bE = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($c[3])) Write-Output ("CASE: m=" + $c[1] + " d=" + $c[2] + " => " + $status) Write-Output ("OUT_BASE64=" + $bO) Write-Output ("EXP_BASE64=" + $bE) Write-Output ("OUT=" + $o) Write-Output ("EXP=" + $c[3]) Write-Output '---' } |