+ Add tests for bidi rule W4
This commit is contained in:
parent
fb971deccf
commit
732b063dcd
43
bidi.lua
43
bidi.lua
|
@ -230,7 +230,7 @@ assert(
|
||||||
"R" == test_output[3].bidi_class
|
"R" == test_output[3].bidi_class
|
||||||
)
|
)
|
||||||
|
|
||||||
bidi.W4 = function(run)
|
local W4 = function(run)
|
||||||
for i = 1, #run do
|
for i = 1, #run do
|
||||||
if "ES" == run[i].bidi_class then
|
if "ES" == run[i].bidi_class then
|
||||||
-- A single European separator between two European numbers
|
-- A single European separator between two European numbers
|
||||||
|
@ -268,6 +268,45 @@ bidi.W4 = function(run)
|
||||||
return run
|
return run
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Test W4: EN ES EN → EN EN EN
|
||||||
|
local test_input = {
|
||||||
|
{ ["bidi_class"] = "EN" },
|
||||||
|
{ ["bidi_class"] = "ES" },
|
||||||
|
{ ["bidi_class"] = "EN" },
|
||||||
|
}
|
||||||
|
local test_output = W4(test_input)
|
||||||
|
assert(
|
||||||
|
"EN" == test_output[1].bidi_class and
|
||||||
|
"EN" == test_output[2].bidi_class and
|
||||||
|
"EN" == test_output[3].bidi_class
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Test W4: EN CS EN → EN EN EN
|
||||||
|
local test_input = {
|
||||||
|
{ ["bidi_class"] = "EN" },
|
||||||
|
{ ["bidi_class"] = "CS" },
|
||||||
|
{ ["bidi_class"] = "EN" },
|
||||||
|
}
|
||||||
|
local test_output = W4(test_input)
|
||||||
|
assert(
|
||||||
|
"EN" == test_output[1].bidi_class and
|
||||||
|
"EN" == test_output[2].bidi_class and
|
||||||
|
"EN" == test_output[3].bidi_class
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Test W4: AN CS AN → AN AN AN
|
||||||
|
local test_input = {
|
||||||
|
{ ["bidi_class"] = "AN" },
|
||||||
|
{ ["bidi_class"] = "CS" },
|
||||||
|
{ ["bidi_class"] = "AN" },
|
||||||
|
}
|
||||||
|
local test_output = W4(test_input)
|
||||||
|
assert(
|
||||||
|
"AN" == test_output[1].bidi_class and
|
||||||
|
"AN" == test_output[2].bidi_class and
|
||||||
|
"AN" == test_output[3].bidi_class
|
||||||
|
)
|
||||||
|
|
||||||
bidi.W5 = function(run)
|
bidi.W5 = function(run)
|
||||||
for i = 1, #run do
|
for i = 1, #run do
|
||||||
if "ET" == run[i].bidi_class then
|
if "ET" == run[i].bidi_class then
|
||||||
|
@ -337,7 +376,7 @@ bidi.resolve_weak_types = function(run, sos)
|
||||||
run = bidi.W1(run, sos)
|
run = bidi.W1(run, sos)
|
||||||
run = W2(run, sos)
|
run = W2(run, sos)
|
||||||
run = W3(run)
|
run = W3(run)
|
||||||
run = bidi.W4(run)
|
run = W4(run)
|
||||||
run = bidi.W5(run)
|
run = bidi.W5(run)
|
||||||
run = bidi.W6(run)
|
run = bidi.W6(run)
|
||||||
run = bidi.W7(run, sos)
|
run = bidi.W7(run, sos)
|
||||||
|
|
Loading…
Reference in New Issue