dev

This module contains testcases for its parent module, TableTools.

See also


local tableTools = require("Module:TableTools")
local ScribuntoUnit = require("Module:ScribuntoUnit")
local suite = ScribuntoUnit:new()

--------------------------------------------------------------------------------
-- For `tableTools.pack()`
--------------------------------------------------------------------------------
function suite:test_pack()
    -- @TODO
end

--------------------------------------------------------------------------------
-- For `tableTools.selectFirst()`
--------------------------------------------------------------------------------
do
    local selectFirst = tableTools.selectFirst
    local expectedError = "Module:TableTools:48: bad argument #1 to " ..
                          "'Dev:TableTools.selectFirst' (index out of range)"

    function suite:test_selectFirst_1()
        local success, errorMessage = pcall(selectFirst, -3)

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_2()
        local success, errorMessage = pcall(selectFirst, -3, "1")

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_3()
        local success, errorMessage = pcall(selectFirst, -3, "1", "2")

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_4()
        local success, first = pcall(selectFirst, -3, "1", "2", "3")

        self:assertTrue(success)
        self:assertEquals(first, "1")
    end

    function suite:test_selectFirst_5()
        local success, errorMessage = pcall(selectFirst, -2)

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_6()
        local success, errorMessage = pcall(selectFirst, -2, "1")

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_7()
        local success, first = pcall(selectFirst, -2, "1", "2")

        self:assertTrue(success)
        self:assertEquals(first, "1")
    end

    function suite:test_selectFirst_8()
        local success, first, second = pcall(selectFirst, -2, "1", "2", "3")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
    end

    function suite:test_selectFirst_9()
        local success, errorMessage = pcall(selectFirst, -1)

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_10()
        local success, first = pcall(selectFirst, -1, "1")

        self:assertTrue(success)
        self:assertEquals(first, "1")
    end

    function suite:test_selectFirst_11()
        local success, first, second = pcall(selectFirst, -1, "1", "2")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
    end

    function suite:test_selectFirst_12()
        local success, first, second, third = pcall(selectFirst, -1, "1", "2", "3")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
        self:assertEquals(third, "3")
    end

    function suite:test_selectFirst_13()
        local success, errorMessage = pcall(selectFirst, 0)

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_14()
        local success, errorMessage = pcall(selectFirst, 0, "1")

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_15()
        local success, errorMessage = pcall(selectFirst, 0, "1", "2")

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_16()
        local success, errorMessage = pcall(selectFirst, 0, "1", "2", "3")

        self:assertFalse(success)
        self:assertEquals(errorMessage, expectedError)
    end

    function suite:test_selectFirst_17()
        local success, first = pcall(selectFirst, 1)

        self:assertTrue(success)
        self:assertEquals(first, nil)
    end

    function suite:test_selectFirst_18()
        local success, first = pcall(selectFirst, 1, "1")

        self:assertTrue(success)
        self:assertEquals(first, "1")
    end

    function suite:test_selectFirst_19()
        local success, first, second = pcall(selectFirst, 1, "1", "2")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, nil)
    end

    function suite:test_selectFirst_20()
        local success, first = pcall(selectFirst, 1, "1", "2", "3")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, nil)
        self:assertEquals(third, nil)
    end

    function suite:test_selectFirst_21()
        local success, first, second = pcall(selectFirst, 2)

        self:assertTrue(success)
        self:assertEquals(first, nil)
        self:assertEquals(second, nil)
    end

    function suite:test_selectFirst_22()
        local success, first, second = pcall(selectFirst, 2, "1")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, nil)
    end

    function suite:test_selectFirst_23()
        local success, first, second = pcall(selectFirst, 2, "1", "2")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
    end

    function suite:test_selectFirst_24()
        local success, first, second, third = pcall(selectFirst, 2, "1", "2", "3")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
        self:assertEquals(third, nil)
    end

    function suite:test_selectFirst_25()
        local success, first, second, third = pcall(selectFirst, 3)

        self:assertTrue(success)
        self:assertEquals(first, nil)
        self:assertEquals(second, nil)
        self:assertEquals(third, nil)
    end

    function suite:test_selectFirst_26()
        local success, first, second, third = pcall(selectFirst, 3, "1")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, nil)
        self:assertEquals(third, nil)
    end

    function suite:test_selectFirst_27()
        local success, first, second, third = pcall(selectFirst, 3, "1", "2")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
        self:assertEquals(third, nil)
    end

    function suite:test_selectFirst_28()
        local success, first, second, third = pcall(selectFirst, 3, "1", "2", "3")

        self:assertTrue(success)
        self:assertEquals(first, "1")
        self:assertEquals(second, "2")
        self:assertEquals(third, "3")
    end
end

--------------------------------------------------------------------------------
-- For `tableTools.isSequence()`
--------------------------------------------------------------------------------
function suite:test_isSequence()
    -- @TODO
end

--------------------------------------------------------------------------------
-- For `tableTools.size()`
--------------------------------------------------------------------------------
function suite:test_size()
    -- @TODO
end

--------------------------------------------------------------------------------
-- For `tableTools.includes()`
--------------------------------------------------------------------------------
function suite:test_includes()
    -- @TODO
end

--------------------------------------------------------------------------------
-- For `tableTools.merge()`
--------------------------------------------------------------------------------
function suite:test_merge()
    -- @TODO
end

return suite