From 17d1308241bfb13790285ca1df7a58cce7505150 Mon Sep 17 00:00:00 2001 From: ywang Date: Fri, 23 Apr 2021 15:54:45 +0200 Subject: Rename unittest directory --- advtrains/spec/atcjit_spec.lua | 179 ++++++++++++++++++++++++++++++++++++++++ advtrains/tests/atcjit_spec.lua | 179 ---------------------------------------- 2 files changed, 179 insertions(+), 179 deletions(-) create mode 100644 advtrains/spec/atcjit_spec.lua delete mode 100644 advtrains/tests/atcjit_spec.lua diff --git a/advtrains/spec/atcjit_spec.lua b/advtrains/spec/atcjit_spec.lua new file mode 100644 index 0000000..638e5c8 --- /dev/null +++ b/advtrains/spec/atcjit_spec.lua @@ -0,0 +1,179 @@ +package.path = "../?.lua;" .. package.path +advtrains = {} +_G.advtrains = advtrains +function _G.attrans(...) return ... end +function advtrains.invert_train() end +function advtrains.train_ensure_init() end + +local atcjit = require("atcjit") + +local function assert_atc(train, warn, err, res) + local w, e = atcjit.execute(train.id,train) + assert.same(err, e) + if w then assert.same(warn, w) end + assert.same(res, train) +end + +local function thisatc(desc, train, warn, err, res) + it(desc, function() assert_atc(train, warn, err, res) end) +end + +describe("simple ATC track", function() + local t = { + atc_arrow = true, + atc_command = " B12WB8WBBWOLD15ORD15OCD1RS10WSM", + door_open = 0, + max_speed = 20, + tarvelocity = 10, + velocity = 0, + } + thisatc("should make the train slow down to 12", t, {}, nil,{ + atc_arrow = true, + atc_brake_target = 12, + atc_command = "B8WBBWOLD15ORD15OCD1RS10WSM", + atc_wait_finish = true, + door_open = 0, + max_speed = 20, + tarvelocity = 10, + velocity = 0, + }) + thisatc("should make the train brake to 8", t, {}, nil, { + atc_arrow = true, + atc_brake_target = 8, + atc_command = "BBWOLD15ORD15OCD1RS10WSM", + atc_wait_finish = true, + door_open = 0, + max_speed = 20, + tarvelocity = 8, + velocity = 0, + }) + thisatc("should make the train stop", t, {}, nil, { + atc_arrow = true, + atc_brake_target = -1, + atc_command = "OLD15ORD15OCD1RS10WSM", + atc_wait_finish = true, + door_open = 0, + max_speed = 20, + tarvelocity = 0, + velocity = 0, + }) + thisatc("should make the train open its left doors", t, {}, nil, { + atc_arrow = true, + atc_brake_target = -1, + atc_command = "ORD15OCD1RS10WSM", + atc_delay = 15, + atc_wait_finish = true, + door_open = -1, + max_speed = 20, + tarvelocity = 0, + velocity = 0, + }) + thisatc("should make the train open its right doors", t, {}, nil,{ + atc_arrow = true, + atc_brake_target = -1, + atc_command = "OCD1RS10WSM", + atc_delay = 15, + atc_wait_finish = true, + door_open = 1, + max_speed = 20, + tarvelocity = 0, + velocity = 0, + }) + thisatc("should make the train close its doors", t, {}, nil, { + atc_arrow = true, + atc_brake_target = -1, + atc_command = "RS10WSM", + atc_delay = 1, + atc_wait_finish = true, + door_open = 0, + max_speed = 20, + tarvelocity = 0, + velocity = 0, + }) + thisatc("should make the train depart and accelerate to 10", t, {}, nil, { + atc_arrow = true, + atc_brake_target = -1, + atc_command = "SM", + atc_delay = 1, + atc_wait_finish = true, + door_open = 0, + max_speed = 20, + tarvelocity = 10, + velocity = 0, + }) + thisatc("should make the train accelerate to 20", t, {}, nil, { + atc_arrow = true, + atc_brake_target = -1, + atc_delay = 1, + atc_wait_finish = true, + door_open = 0, + max_speed = 20, + tarvelocity = 20, + velocity = 0, + }) +end) + +describe("ATC track with whitespaces", function() + local t = { + atc_command = " \t\n OC \n S20 \r " + } + thisatc("should not cause errors", t, {}, nil, { + door_open = 0, + tarvelocity = 20, + }) +end) + +describe("empty ATC track", function() + local t = {atc_command = ""} + thisatc("should not do anything", t, {}, nil, {}) +end) + +describe("ATC track with nested I statements", function() + local t = { + atc_arrow = false, + atc_command = "I+OREI>5I<=10S16WORES12;D15;;OC", + velocity = 10, + door_open = 0, + } + thisatc("should make the train accelerate to 16", t, {}, nil,{ + atc_arrow = false, + atc_command = "ORD15OC", + atc_wait_finish = true, + velocity = 10, + door_open = 0, + tarvelocity = 16, + }) +end) + +describe("ATC track with invalid statement", function() + local t = { atc_command = "Ifoo" } + thisatc("should report an error", t, {}, "Invalid command or malformed I statement: Ifoo", t) +end) + +describe("ATC track with invalid I condition", function() + local t = { atc_command = "I?;" } + thisatc("should report an error", t, {}, "Invalid I statement", t) +end) + +describe("ATC track reusing existing code", function() + local t = { atc_command = " B12WB8WBBWOLD15ORD15OCD1RS10WSM", tarvelocity = 15 } + thisatc("should do the same thing as in the first test", t, {}, nil, { + atc_brake_target = 12, + atc_command = "B8WBBWOLD15ORD15OCD1RS10WSM", + atc_wait_finish = true, + tarvelocity = 12 + }) +end) + +describe("ATC track reusing malformed code", function() + local t = {atc_command = "I?;"} + thisatc("should report the invalid I statement", t, {}, "Invalid I statement", t) +end) + +describe("ATC track that sets ARS modes", function() + local t = {atc_command = "A0WA1WAFWAT"} + thisatc("should disable ARS on the train with A0", t, {}, nil, {atc_wait_finish=true, ars_disable=true, atc_command="A1WAFWAT"}) + thisatc("should enable ARS on the train with A1", t, {}, nil, {atc_wait_finish=true, ars_disable=false, atc_command="AFWAT"}) + thisatc("should disable ARS on the train with AF", t, {}, nil, {atc_wait_finish=true, ars_disable=true, atc_command="AT"}) + thisatc("should enable ARS on the train with AT", t, {}, nil, {atc_wait_finish=true, ars_disable=false,}) +end) \ No newline at end of file diff --git a/advtrains/tests/atcjit_spec.lua b/advtrains/tests/atcjit_spec.lua deleted file mode 100644 index 638e5c8..0000000 --- a/advtrains/tests/atcjit_spec.lua +++ /dev/null @@ -1,179 +0,0 @@ -package.path = "../?.lua;" .. package.path -advtrains = {} -_G.advtrains = advtrains -function _G.attrans(...) return ... end -function advtrains.invert_train() end -function advtrains.train_ensure_init() end - -local atcjit = require("atcjit") - -local function assert_atc(train, warn, err, res) - local w, e = atcjit.execute(train.id,train) - assert.same(err, e) - if w then assert.same(warn, w) end - assert.same(res, train) -end - -local function thisatc(desc, train, warn, err, res) - it(desc, function() assert_atc(train, warn, err, res) end) -end - -describe("simple ATC track", function() - local t = { - atc_arrow = true, - atc_command = " B12WB8WBBWOLD15ORD15OCD1RS10WSM", - door_open = 0, - max_speed = 20, - tarvelocity = 10, - velocity = 0, - } - thisatc("should make the train slow down to 12", t, {}, nil,{ - atc_arrow = true, - atc_brake_target = 12, - atc_command = "B8WBBWOLD15ORD15OCD1RS10WSM", - atc_wait_finish = true, - door_open = 0, - max_speed = 20, - tarvelocity = 10, - velocity = 0, - }) - thisatc("should make the train brake to 8", t, {}, nil, { - atc_arrow = true, - atc_brake_target = 8, - atc_command = "BBWOLD15ORD15OCD1RS10WSM", - atc_wait_finish = true, - door_open = 0, - max_speed = 20, - tarvelocity = 8, - velocity = 0, - }) - thisatc("should make the train stop", t, {}, nil, { - atc_arrow = true, - atc_brake_target = -1, - atc_command = "OLD15ORD15OCD1RS10WSM", - atc_wait_finish = true, - door_open = 0, - max_speed = 20, - tarvelocity = 0, - velocity = 0, - }) - thisatc("should make the train open its left doors", t, {}, nil, { - atc_arrow = true, - atc_brake_target = -1, - atc_command = "ORD15OCD1RS10WSM", - atc_delay = 15, - atc_wait_finish = true, - door_open = -1, - max_speed = 20, - tarvelocity = 0, - velocity = 0, - }) - thisatc("should make the train open its right doors", t, {}, nil,{ - atc_arrow = true, - atc_brake_target = -1, - atc_command = "OCD1RS10WSM", - atc_delay = 15, - atc_wait_finish = true, - door_open = 1, - max_speed = 20, - tarvelocity = 0, - velocity = 0, - }) - thisatc("should make the train close its doors", t, {}, nil, { - atc_arrow = true, - atc_brake_target = -1, - atc_command = "RS10WSM", - atc_delay = 1, - atc_wait_finish = true, - door_open = 0, - max_speed = 20, - tarvelocity = 0, - velocity = 0, - }) - thisatc("should make the train depart and accelerate to 10", t, {}, nil, { - atc_arrow = true, - atc_brake_target = -1, - atc_command = "SM", - atc_delay = 1, - atc_wait_finish = true, - door_open = 0, - max_speed = 20, - tarvelocity = 10, - velocity = 0, - }) - thisatc("should make the train accelerate to 20", t, {}, nil, { - atc_arrow = true, - atc_brake_target = -1, - atc_delay = 1, - atc_wait_finish = true, - door_open = 0, - max_speed = 20, - tarvelocity = 20, - velocity = 0, - }) -end) - -describe("ATC track with whitespaces", function() - local t = { - atc_command = " \t\n OC \n S20 \r " - } - thisatc("should not cause errors", t, {}, nil, { - door_open = 0, - tarvelocity = 20, - }) -end) - -describe("empty ATC track", function() - local t = {atc_command = ""} - thisatc("should not do anything", t, {}, nil, {}) -end) - -describe("ATC track with nested I statements", function() - local t = { - atc_arrow = false, - atc_command = "I+OREI>5I<=10S16WORES12;D15;;OC", - velocity = 10, - door_open = 0, - } - thisatc("should make the train accelerate to 16", t, {}, nil,{ - atc_arrow = false, - atc_command = "ORD15OC", - atc_wait_finish = true, - velocity = 10, - door_open = 0, - tarvelocity = 16, - }) -end) - -describe("ATC track with invalid statement", function() - local t = { atc_command = "Ifoo" } - thisatc("should report an error", t, {}, "Invalid command or malformed I statement: Ifoo", t) -end) - -describe("ATC track with invalid I condition", function() - local t = { atc_command = "I?;" } - thisatc("should report an error", t, {}, "Invalid I statement", t) -end) - -describe("ATC track reusing existing code", function() - local t = { atc_command = " B12WB8WBBWOLD15ORD15OCD1RS10WSM", tarvelocity = 15 } - thisatc("should do the same thing as in the first test", t, {}, nil, { - atc_brake_target = 12, - atc_command = "B8WBBWOLD15ORD15OCD1RS10WSM", - atc_wait_finish = true, - tarvelocity = 12 - }) -end) - -describe("ATC track reusing malformed code", function() - local t = {atc_command = "I?;"} - thisatc("should report the invalid I statement", t, {}, "Invalid I statement", t) -end) - -describe("ATC track that sets ARS modes", function() - local t = {atc_command = "A0WA1WAFWAT"} - thisatc("should disable ARS on the train with A0", t, {}, nil, {atc_wait_finish=true, ars_disable=true, atc_command="A1WAFWAT"}) - thisatc("should enable ARS on the train with A1", t, {}, nil, {atc_wait_finish=true, ars_disable=false, atc_command="AFWAT"}) - thisatc("should disable ARS on the train with AF", t, {}, nil, {atc_wait_finish=true, ars_disable=true, atc_command="AT"}) - thisatc("should enable ARS on the train with AT", t, {}, nil, {atc_wait_finish=true, ars_disable=false,}) -end) \ No newline at end of file -- cgit v1.2.3