return function()local G=require(script.Parent.difference)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\104\101 \100\105\102\102\101\114\101\110\099\101 \098\101\116\119\101\101\110 \116\119\111 \097\114\114\097\121\115",function()local j={"\104\101\108\108\111";"\119\111\114\108\100"}local Z={"\099\097\116";"\100\111\103","\104\101\108\108\111"}local E=G(j,Z);(expect(E)).to.be.a("\116\097\098\108\101");(expect(#E)).to.equal(1);(expect(table.find(E,"\119\111\114\108\100"))).to.be.ok()end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \118\097\114\097\114\103 \110\105\108 \118\097\108\117\101\115",function()local j={"\104\101\108\108\111","\119\111\114\108\100"}local Z={"\099\097\116";"\100\111\103","\104\101\108\108\111"}local E=G(j,nil,Z);(expect(E)).to.be.a("\116\097\098\108\101");(expect(#E)).to.equal(1);(expect(table.find(E,"\119\111\114\108\100"))).to.be.ok()end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \109\117\108\116\105\112\108\101 \097\114\114\097\121\115",function()local j={"\104\101\108\108\111";"\119\111\114\108\100"}local Z={"\099\097\116";"\100\111\103";"\104\101\108\108\111"}local E={"\104\101\108\108\111";"\112\097\110\100\097"}local K=G(j,Z,E);(expect(K)).to.be.a("\116\097\098\108\101");(expect(#K)).to.equal(1);(expect(table.find(K,"\119\111\114\108\100"))).to.be.ok()end)end
return function()
	local difference = require(script.Parent.difference)

	it("should return the difference between two arrays", function()
		local array = { "hello", "world" }
		local otherArray = { "cat", "dog", "hello" }

		local newArray = difference(array, otherArray)

		expect(newArray).to.be.a("table")
		expect(#newArray).to.equal(1)

		expect(table.find(newArray, "world")).to.be.ok()
	end)

	it("should accept vararg nil values", function()
		local array = { "hello", "world" }
		local otherArray = { "cat", "dog", "hello" }

		local newArray = difference(array, nil, otherArray)

		expect(newArray).to.be.a("table")
		expect(#newArray).to.equal(1)

		expect(table.find(newArray, "world")).to.be.ok()
	end)

	it("should accept multiple arrays", function()
		local array = { "hello", "world" }
		local otherArray = { "cat", "dog", "hello" }
		local anotherArray = { "hello", "panda" }

		local newArray = difference(array, otherArray, anotherArray)

		expect(newArray).to.be.a("table")
		expect(#newArray).to.equal(1)

		expect(table.find(newArray, "world")).to.be.ok()
	end)
end
