From d664681ea8822679bdb936d9e9a116effd547985 Mon Sep 17 00:00:00 2001 From: lethosor Date: Sun, 5 Apr 2020 23:30:24 -0400 Subject: [PATCH] Add a basic test for df.image_set.find() --- test/main.lua | 7 +++++-- test/structures/find.lua | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test/structures/find.lua diff --git a/test/main.lua b/test/main.lua index d4c62666f..c8e34cc70 100644 --- a/test/main.lua +++ b/test/main.lua @@ -17,10 +17,13 @@ local VALID_MODES = utils.invert{'none', 'title', 'fortress'} expect = {} function expect.true_(value, comment) - return not not value, comment, 'expected true' + return not not value, comment, 'expected true, got ' .. tostring(value) end function expect.false_(value, comment) - return not value, comment, 'expected false' + return not value, comment, 'expected false, got ' .. tostring(value) +end +function expect.nil_(value, comment) + return value == nil, comment, 'expected nil, got ' .. tostring(value) end function expect.eq(a, b, comment) return a == b, comment, ('%s ~= %s'):format(a, b) diff --git a/test/structures/find.lua b/test/structures/find.lua new file mode 100644 index 000000000..57a659afa --- /dev/null +++ b/test/structures/find.lua @@ -0,0 +1,32 @@ +config = { + mode = 'title', +} + +local function clean_vec(vec) + while #vec > 0 do + if vec[0] then + expect.true_(vec[0]:delete()) + end + vec:erase(0) + end +end + +local function with_clean_vec(cls, callback) + local vec = cls.get_vector() + dfhack.call_with_finalizer(1, true, clean_vec, vec, callback, vec) +end + +function test.image_set() + -- todo: expand to other types? + with_clean_vec(df.image_set, function(vec) + vec:insert('#', {new = df.image_set, id = 1}) + vec:insert('#', {new = df.image_set, id = 2}) + vec:insert('#', {new = df.image_set, id = 4}) + expect.eq(df.image_set.find(1).id, 1) + expect.eq(df.image_set.find(2).id, 2) + expect.eq(df.image_set.find(4).id, 4) + expect.nil_(df.image_set.find(3)) + expect.nil_(df.image_set.find(5)) + expect.nil_(df.image_set.find(-1)) + end) +end