Skip to content

Commit

Permalink
more test
Browse files Browse the repository at this point in the history
  • Loading branch information
zhaozg committed Dec 23, 2023
1 parent 04a6407 commit 320d357
Show file tree
Hide file tree
Showing 7 changed files with 429 additions and 32 deletions.
10 changes: 8 additions & 2 deletions .luarc.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,14 @@
},
"format.enable": true,
"workspace": {
"libraryApply": ["busted"],
"checkThirdParty": true,
"library": [
"lua",
"$VIMRUNTIME",
"${3rd}/busted/library",
"${3rd}/luassert/library",
"${3rd}/luv/library"
],
"checkThirdParty": false,
"maxPreload": 2000,
"preloadFileSize": 1000,
"typeFormat": {
Expand Down
2 changes: 1 addition & 1 deletion rime/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ function utils.printStatus(status)
print("status: ");
print(' disabled:', status.disabled)
print(' composing:', status.composing)
print(' asciimode:', status.ascii_mode)
print(' ascii_mode:', status.ascii_mode)
print(' full_shape:', status.full_shape)
print(' simplified:', status.simplified)
print("");
Expand Down
32 changes: 3 additions & 29 deletions spec/base_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -28,33 +28,6 @@ describe("basic test", function()
end
end)

it("info", function()
assert.equals("1.9.0", rime:Version())
assert.equals("string", type(rime:SharedDataDir()))
assert.equals("string", type(rime:UserDataDir()))
assert.equals("string", type(rime:SyncDir()))
assert.equals("string", type(rime:UserId()))
assert.equals("string", type(rime:UserDataSyncDir()))
assert.equals("table", type(rime:Schemas()))
end)

it("maintance", function()
assert(rime:is_maintenance_mode()==false)

assert(rime:start_maintenance(false)==false)
assert(rime:start_maintenance(true)==true)
rime:join_maintenance_thread()

rime:deployer_initialize(traits)
rime:prebuild()
rime:deploy()

rime:deploy_schema('luna_pinyin')

rime:deploy_config_file('default','1.3.1')
--rime:sync_user_data()
end)

it("session", function()
session = rime:SessionCreate()
rime:SessionCleanup()
Expand All @@ -66,7 +39,7 @@ describe("basic test", function()
it("schema", function()
session = rime:SessionCreate()
local _schema = session:Schema()
assert.equals('string', type(_schema))
assert('string' == type(_schema))
if _schema ~= 'luna_pinyin' then
schema = 'luna_pinyin'
session:Schema(schema)
Expand All @@ -87,6 +60,7 @@ describe("basic test", function()
rime.utils.print_r(schema_list)

local schemaid = schema_list[#schema_list].id
assert(schemaid)
session:Schema(schema)
assert(schema==session:Schema())

Expand Down Expand Up @@ -146,7 +120,7 @@ describe("basic test", function()
assert(session:Select(1))
print(session:Commit())

local seq = "yitiaodaheboliangkuanfengchuidaohuaxiangliang'an"
local seq = "yitiaodahebolangkuanfengchuidaohuaxiangliang'an"
for i=1,#seq do
local keycode = seq:byte(i)
session:process(keycode)
Expand Down
28 changes: 28 additions & 0 deletions spec/config_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,34 @@ describe("config test", function()
end
end)

it("info", function()
assert.equal("1.9.0", rime:Version())
assert.equal("string", type(rime:SharedDataDir()))
assert.equal("string", type(rime:UserDataDir()))
assert.equal("string", type(rime:SyncDir()))
assert.equal("string", type(rime:UserId()))
assert.equal("string", type(rime:UserDataSyncDir()))
assert.equal("table", type(rime:Schemas()))
end)

it("maintance", function()
assert(rime:is_maintenance_mode()==false)

assert(rime:start_maintenance(false)==false)
assert(rime:start_maintenance(true)==true)
rime:join_maintenance_thread()

rime:deployer_initialize(traits)
rime:prebuild()
rime:deploy()

rime:deploy_schema('luna_pinyin')

rime:deploy_config_file('default','1.3.1')
--rime:sync_user_data()
end)


it("simple list", function()
local config = rime:ConfigCreate(true)
assert(config:create_map('list'))
Expand Down
108 changes: 108 additions & 0 deletions spec/double_pinyin_spec.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
describe("double_pinyin test", function()
package.path = '?/init.lua;?.lua;'..package.path
local rime, traits, session
local _ref = 0
local schema = "double_pinyin"

setup(function()
if not rime then
local profile = require('profile')
rime = require'rime'(assert(profile.traits.runtimePath))
traits = rime:toTraits(
assert(profile.traits.dataPath),
assert(profile.traits.userPath),
assert(profile.traits.name),
assert(profile.traits.code_name),
assert(profile.traits.version)
)

assert(rime:initialize(traits, false, function() end))
rime:deploy_schema(schema)
end
_ref = _ref + 1
end)

teardown(function()
_ref = _ref - 1
if _ref == 0 then
rime:finalize()
rime = nil
end
end)

it("schema", function()
session = rime:SessionCreate()
local _schema = session:Schema()
assert('string' == type(_schema))
session:Schema(schema)
assert(schema == session:Schema())
session:Option('ascii_mode', true)
session:Option('simplification', true)
local status = session:Status()
assert.are.same({
disabled = false,
composing = false,
ascii_mode = true,
full_shape = false,
simplified = true,
id = schema,
name = '自然码双拼'
}, status)
end)

it("double_pinyin ime", function()
--disable ascii_mode
assert(session:Schema(schema))
session:Option('ascii_mode', false)
local list

--rime.utils.printInfo(session)
assert(session:simulate('xigrjqhkle')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(#list > 0)
--rime.utils.print_r(list, "习惯就好了")
assert(session:Select(1))
local commit = session:Commit()
assert.equal("习惯就好了", commit)

assert(session:simulate('burejnsiji')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(#list > 0)
--rime.utils.print_r(list, "布热津斯基")
assert(session:Select(1))
commit = session:Commit()
assert.equal("布热津斯基", commit)

assert(session:simulate('uurufhuivrhrjm')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(session:Select(1))
commit = session:Commit()
assert.equal("输入方式转换键", commit)

assert(session:simulate('iujdkswj')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(session:Select(1))
commit = session:Commit()
assert.equal("楚江空晚", commit)

local seq = "yitcdahebolhkrfgivdkhwxdldan"
for i=1,#seq do
local keycode = seq:byte(i)
session:process(keycode)
end

local status = session:Status()
local selected = {2, 2, 4, 2, 2, 1}
while(status.composing) do
local idx = assert(table.remove(selected, 1))
assert(session:Select(idx))
status = session:Status()
end

assert.equal('一条大河波浪宽风吹稻花香两岸', session:Commit())
end)
end)
143 changes: 143 additions & 0 deletions spec/pinyin_fluency_spec.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
describe("luna_pinyin test", function()
package.path = '?/init.lua;?.lua;'..package.path
local rime, traits, session
local _ref = 0
local schema = "luna_pinyin_fluency"
-- 以空格分詞、標點或回車上屏。
-- FIXME: session:Commit fail
if true then
return
end

setup(function()
if not rime then
local profile = require('profile')
rime = require'rime'(assert(profile.traits.runtimePath))
traits = rime:toTraits(
assert(profile.traits.dataPath),
assert(profile.traits.userPath),
assert(profile.traits.name),
assert(profile.traits.code_name),
assert(profile.traits.version)
)

assert(rime:initialize(traits, false, function() end))
rime:deploy_schema(schema)
end
_ref = _ref + 1
end)

teardown(function()
_ref = _ref - 1
if _ref == 0 then
rime:finalize()
rime = nil
end
end)

it("schema", function()
session = rime:SessionCreate()
local _schema = session:Schema()
assert('string' == type(_schema))
session:Schema(schema)
assert(schema == session:Schema())

local status = session:Status()
assert.are.same(status, {
disabled = false,
composing = false,
ascii_mode = true,
full_shape = false,
simplified = true,
id = schema,
name = '朙月拼音·語句流'
})
end)

it("pinyin ascii_mode", function()
local v = session:Option('ascii_mode')
session:Option('ascii_mode', not v)
assert(v~=session:Option('ascii_mode'))

--disable ascii_mode
session:Option('ascii_mode', false)
local list = session:Candidates()

assert(session:simulate('abcd')==true)
local status = session:Status()
assert.are.same(status, {
disabled = false,
composing = true,
ascii_mode = false,
full_shape = false,
simplified = true,
id = schema,
name = '朙月拼音·語句流'
})

list = session:Candidates()
assert(type(list)=='table')
assert(#list > 0)
--rime.utils.print_r(list,'list of abcd')
print(session:Select(1))
local commit = assert(session:Commit())
assert.equal("啊不错的", commit)
end)

it("pinyin ime", function()
--disable ascii_mode
assert(session:Schema(schema))
session:Option('ascii_mode', false)
local list

--rime.utils.printInfo(session)
assert(session:simulate('xiguanjiuhaole')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(#list > 0)
--rime.utils.print_r(list, "习惯就好了")
assert(session:Select(1))

local commit = session:Commit()
assert.equal("习惯就好了", commit)

assert(session:simulate('burejinsiji')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(#list > 0)
--rime.utils.print_r(list, "布热津斯基")
assert(session:Select(1))
commit = session:Commit()
assert.equal("布热津斯基", commit)

assert(session:simulate('shurufangshizhuanhuanjian')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(session:Select(1))
commit = session:Commit()
assert.equal("输入方式转换键", commit)

assert(session:simulate('chujiangkongwan')==true)
--rime.utils.printInfo(session)
list = session:Candidates()
assert(session:Select(1))
commit = session:Commit()
assert.equal("楚江空晚", commit)

local seq = "yitiaodahebolangkuanfengchuidaohuaxiangliang'an"
for i=1,#seq do
local keycode = seq:byte(i)
session:process(keycode)
end

local status = session:Status()
local selected = {2, 2, 4, 2, 2, 1}
while(status.composing) do
local idx = assert(table.remove(selected, 1))
assert(session:Select(idx))
status = session:Status()
end

assert.equal('一条大河波浪宽风吹稻花香两岸', session:Commit())
end)
end)
Loading

0 comments on commit 320d357

Please sign in to comment.