1
0
Fork 0
mirror of https://github.com/Oreolek/ink-instead.git synced 2024-07-07 17:14:39 +03:00
ink-instead/test.lua

72 lines
2 KiB
Lua
Raw Normal View History

2016-11-30 17:11:57 +02:00
local luaunit = require('luaunit')
local parser = require('pink.parser')
2017-01-22 01:02:26 +02:00
local runtime = require('pink.runtime')
2016-12-31 01:27:11 +02:00
local pink = require('pink.pink')
2016-11-30 17:11:57 +02:00
2017-01-22 01:02:26 +02:00
--- parser ---
2016-11-30 17:11:57 +02:00
function testEmpt() doTestS(
"",
{}
) end
2016-12-03 01:08:14 +02:00
function testText() doTestS(
"Hello world",
{{"para", "Hello world"}}
) end
2016-12-04 02:38:27 +02:00
function testOpt1() doTestS(
2016-12-03 01:08:14 +02:00
'* "I am somewhat tired[."]," I repeated.',
2016-12-03 04:05:00 +02:00
{{'choice', {"option", '"I am somewhat tired', '."', '," I repeated.'}}}
2016-12-03 01:08:14 +02:00
) end
2016-12-04 02:38:27 +02:00
2016-12-03 01:08:14 +02:00
function testBasic() doTest('basic') end
function testChoices() doTest('choices') end
2016-12-04 02:38:27 +02:00
function testNest() doTest('nested') end
function testNest2() doTest('nested2') end
function testKnot() doTest('knot') end
2016-12-04 02:54:34 +02:00
function testBranching() doTest('branching') end
2016-12-04 03:47:33 +02:00
function testGlue() doTest('glue') end
2017-01-22 01:02:26 +02:00
function testInclude() doTest('include') end
2016-11-30 17:11:57 +02:00
2017-01-22 01:02:26 +02:00
--- runtime ---
2016-12-31 01:27:11 +02:00
function testVisitCount()
2017-01-22 01:02:26 +02:00
local story = pink.getStory('test/runtime/branching.ink')
2016-12-31 01:27:11 +02:00
story.choosePathString('hurry_outside');
luaunit.assertEquals(story.state.visitCountAtPathString('as_fast_as_we_could'), 0)
while story.canContinue do story.continue() end
luaunit.assertEquals(story.state.visitCountAtPathString('as_fast_as_we_could'), 1)
story.choosePathString('hurry_outside');
while story.canContinue do story.continue() end
luaunit.assertEquals(story.state.visitCountAtPathString('as_fast_as_we_could'), 2)
luaunit.assertEquals(story.state.visitCountAtPathString('as_fast_as_we_could'), 2)
end
2017-01-22 01:02:26 +02:00
function testIncludeR()
local story = pink.getStory('test/runtime/include.ink')
luaunit.assertEquals(story.continue(), 'hello world')
luaunit.assertEquals(story.continue(), 'hello again')
luaunit.assertFalse(story.canContinue)
end
2016-12-31 01:27:11 +02:00
-- TODO test runtime more, test public pink API
2016-11-30 17:11:57 +02:00
2017-01-22 01:02:26 +02:00
2016-11-30 17:11:57 +02:00
-----------------------------
function doTestS(ink, expected)
luaunit.assertEquals(parser:match(ink), expected)
end
function doTest(name)
2017-01-22 01:02:26 +02:00
local test = require ('test.parser.'..name)
2016-11-30 17:11:57 +02:00
local parsed = parser:match(test.ink)
luaunit.assertEquals(parsed, test.expected)
end
os.exit( luaunit.LuaUnit.run() )