156 lines
4.1 KiB
Lua
156 lines
4.1 KiB
Lua
return function()
|
|
local TableUtilities = require(script.Parent.TableUtilities)
|
|
|
|
it("should return whether tables are equal to each other", function()
|
|
local tableA = nil
|
|
local tableB = nil
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
|
|
tableA = nil
|
|
tableB = {}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
|
|
tableA = {}
|
|
tableB = nil
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
|
|
tableA = {}
|
|
tableB = {}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(true)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key1 = "value1",
|
|
}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(true)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key1 = "value2",
|
|
}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key2 = "value1",
|
|
}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key2 = "value2",
|
|
}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key1 = "value1",
|
|
key2 = "value2",
|
|
}
|
|
expect(TableUtilities.ShallowEqual(tableA, tableB)).to.equal(false)
|
|
end)
|
|
|
|
it("should return whether tables are equal to each other at key", function()
|
|
local tableA = nil
|
|
local tableB = nil
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = nil
|
|
tableB = {}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = {}
|
|
tableB = nil
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = {}
|
|
tableB = {}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key1 = "value1",
|
|
}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(true)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key1 = "value2",
|
|
}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key2 = "value1",
|
|
}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key2 = "value2",
|
|
}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(false)
|
|
|
|
tableA = {
|
|
key1 = "value1",
|
|
}
|
|
tableB = {
|
|
key1 = "value1",
|
|
key2 = "value2",
|
|
}
|
|
expect(TableUtilities.EqualKey(tableA, tableB)).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "")).to.equal(false)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key1")).to.equal(true)
|
|
expect(TableUtilities.EqualKey(tableA, tableB, "key2")).to.equal(false)
|
|
end)
|
|
|
|
it("should return table's field count", function()
|
|
local table = {}
|
|
expect(TableUtilities.FieldCount(table)).to.equal(0)
|
|
|
|
table = {
|
|
key1 = "value1",
|
|
}
|
|
expect(TableUtilities.FieldCount(table)).to.equal(1)
|
|
|
|
table = {
|
|
key1 = "value1",
|
|
key2 = "value2",
|
|
}
|
|
expect(TableUtilities.FieldCount(table)).to.equal(2)
|
|
end)
|
|
end |