local L=require(script.Parent.diffTables)return function()describe("\102\117\110\099\116\105\111\110",function()it("\115\104\111\117\108\100 \098\101 \116\114\117\101 \119\104\101\110 \098\111\116\104 \112\097\114\097\109\101\116\101\114\115 \097\114\101 \110\105\108",function()(expect(L())).to.equal(true)end)it("\115\104\111\117\108\100 \098\101 \116\114\117\101 \119\104\101\110 \116\104\101 \102\105\114\115\116 \112\097\114\097\109\101\116\101\114 \105\115 \110\105\108",function()(expect(L(nil,{}))).to.equal(true)end)it("\115\104\111\117\108\100 \098\101 \116\114\117\101 \119\104\101\110 \116\104\101 \115\101\099\111\110\100 \112\097\114\097\109\101\116\101\114 \105\115 \110\105\108",function()(expect(L({}))).to.equal(true)end)it("\115\104\111\117\108\100 \098\101 \102\097\108\115\101 \119\105\116\104 \116\119\111 \100\105\102\102\101\114\101\110\116 \101\109\112\116\121 \116\097\098\108\101\115",function()local O={}local l={};(expect(L(O,l))).to.equal(false)end)it("\115\104\111\117\108\100 \098\101 \116\114\117\101 \119\105\116\104 \116\097\098\108\101\115 \119\105\116\104 \100\105\102\102\101\114\101\110\116 \101\108\101\109\101\110\116\115",function()local O={1,2;3}local l={"\097","\098","\099"};(expect(L(O,l))).to.equal(true)end)it("\115\104\111\117\108\100 \098\101 \116\114\117\101 \119\105\116\104 \116\097\098\108\101\115 \119\105\116\104 \110\101\097\114\108\121 \116\104\101 \115\097\109\101 \101\108\101\109\101\110\116\115",function()local O={1,2;3}local l={1,2,3;4};(expect(L(O,l))).to.equal(true)end)it("\115\104\111\117\108\100 \098\101 \102\097\108\115\101 \119\105\116\104 \100\105\102\102\101\114\101\110\116 \105\100\101\110\116\105\099\097\108 \116\097\098\108\101\115",function()local O={1,2;3}local l={1;2;3};(expect(L(O,l))).to.equal(false)end)it("\115\104\111\117\108\100 \098\101 \102\097\108\115\101 \119\105\116\104 \116\104\101 \115\097\109\101 \116\097\098\108\101",function()local O={1,2;3};(expect(L(O,O))).to.equal(false)end)end)end
local diffTables = require(script.Parent.diffTables)

return function()
	describe("function", function()
		it("should be true when both parameters are nil", function()
			expect(diffTables()).to.equal(true)
		end)

		it("should be true when the first parameter is nil", function()
			expect(diffTables(nil, {})).to.equal(true)
		end)

		it("should be true when the second parameter is nil", function()
			expect(diffTables({})).to.equal(true)
		end)

		it("should be false with two different empty tables", function()
			local left = {}
			local right = {}
			expect(diffTables(left, right)).to.equal(false)
		end)

		it("should be true with tables with different elements", function()
			local left = {
				1,
				2,
				3,
			}
			local right = {
				"a",
				"b",
				"c",
			}
			expect(diffTables(left, right)).to.equal(true)
		end)

		it("should be true with tables with nearly the same elements", function()
			local left = {
				1,
				2,
				3,
			}
			local right = {
				1,
				2,
				3,
				4,
			}
			expect(diffTables(left, right)).to.equal(true)
		end)

		it("should be false with different identical tables", function()
			local left = {
				1,
				2,
				3,
			}
			local right = {
				1,
				2,
				3,
			}
			expect(diffTables(left, right)).to.equal(false)
		end)

		it("should be false with the same table", function()
			local left = {
				1,
				2,
				3,
			}
			expect(diffTables(left, left)).to.equal(false)
		end)
	end)
end
