return function()local H=require(script.Parent.merge)it("\115\104\111\117\108\100 \109\101\114\103\101 \116\119\111 \115\101\116\115",function()local R={hello=true,world=true}local O={panda=true,cat=true}local F=H(R,O);(expect(F)).to.be.a("\116\097\098\108\101");(expect(F.hello)).to.equal(true);(expect(F.world)).to.equal(true);(expect(F.panda)).to.equal(true);(expect(F.cat)).to.equal(true)end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \110\105\108 \118\097\108\117\101\115",function()local R={hello=true;world=true}local O={panda=true,cat=true}local F=H(R,nil,O)local o=H(nil,R,O);(expect(F)).to.be.a("\116\097\098\108\101");(expect(F.hello)).to.equal(true);(expect(F.panda)).to.equal(true);(expect(o)).to.be.a("\116\097\098\108\101");(expect(o.cat)).to.equal(true);(expect(o.world)).to.equal(true)end)end
return function()
	local merge = require(script.Parent.merge)

	it("should merge two sets", function()
		local set = { hello = true, world = true }
		local otherSet = { panda = true, cat = true }

		local newSet = merge(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 nil values", function()
		local set = { hello = true, world = true }
		local otherSet = { panda = true, cat = true }

		local newSet = merge(set, nil, otherSet)
		local newSet2 = merge(nil, set, otherSet)

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

		expect(newSet2).to.be.a("table")
		expect(newSet2.cat).to.equal(true)
		expect(newSet2.world).to.equal(true)
	end)
end
