return function()local K=require(script.Parent.differenceSymmetric)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\104\101 \115\121\109\109\101\116\114\105\099 \100\105\102\102\101\114\101\110\099\101 \098\101\116\119\101\101\110 \116\119\111 \115\101\116\115",function()local A={hello=true,world=true}local g={panda=true;cat=true}local G=K(A,g);(expect(G)).to.be.a("\116\097\098\108\101");(expect(G.hello)).to.equal(true);(expect(G.world)).to.equal(true);(expect(G.panda)).to.equal(true);(expect(G.cat)).to.equal(true)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 A={hello=true;world=true}local g={panda=true,cat=true}local G=K(A,nil,g);(expect(G)).to.be.a("\116\097\098\108\101");(expect(G.hello)).to.equal(true);(expect(G.panda)).to.equal(true)end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \109\117\108\116\105\112\108\101 \115\101\116\115",function()local A={hello=true;world=true}local g={panda=true;cat=true}local G={hello=true,panda=true}local t=K(A,g,G);(expect(t)).to.be.a("\116\097\098\108\101");(expect(t.hello)).to.equal(nil);(expect(t.world)).to.equal(true);(expect(t.panda)).to.equal(nil);(expect(t.cat)).to.equal(true)end)end
return function()
	local differenceSymmetric = require(script.Parent.differenceSymmetric)

	it("should return the symmetric difference between two sets", function()
		local set = { hello = true, world = true }
		local otherSet = { panda = true, cat = true }

		local newSet = differenceSymmetric(set, otherSet)

		expect(newSet).to.be.a("table")

		expect(newSet.hello).to.equal(true)
		expect(newSet.world).to.equal(true)
		expect(newSet.panda).to.equal(true)
		expect(newSet.cat).to.equal(true)
	end)

	it("should accept vararg nil values", function()
		local set = { hello = true, world = true }
		local otherSet = { panda = true, cat = true }

		local newSet = differenceSymmetric(set, nil, otherSet)

		expect(newSet).to.be.a("table")
		expect(newSet.hello).to.equal(true)
		expect(newSet.panda).to.equal(true)
	end)

	it("should accept multiple sets", function()
		local set = { hello = true, world = true }
		local otherSet = { panda = true, cat = true }
		local anotherSet = { hello = true, panda = true }

		local newSet = differenceSymmetric(set, otherSet, anotherSet)

		expect(newSet).to.be.a("table")

		expect(newSet.hello).to.equal(nil)
		expect(newSet.world).to.equal(true)
		expect(newSet.panda).to.equal(nil)
		expect(newSet.cat).to.equal(true)
	end)
end
