return function()local v=require(script.Parent.filter)it("\115\104\111\117\108\100 \102\105\108\116\101\114 \097 \115\101\116",function()local h={hello=true,world=true}local Q=v(h,function(v)return v~="\104\101\108\108\111"end);(expect(Q)).to.be.a("\116\097\098\108\101");(expect(Q.hello)).to.equal(nil);(expect(Q.world)).to.equal(true)end)it("\115\104\111\117\108\100 \110\111\116 \109\111\100\105\102\121 \116\104\101 \111\114\105\103\105\110\097\108 \115\101\116",function()local h={hello=true}v(h,function(v)return v~="\104\101\108\108\111"end);(expect(h)).to.be.a("\116\097\098\108\101");(expect(h.hello)).to.equal(true)end)end
return function()
	local filter = require(script.Parent.filter)

	it("should filter a set", function()
		local set = { hello = true, world = true }

		local newSet = filter(set, function(value)
			return value ~= "hello"
		end)

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

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

	it("should not modify the original set", function()
		local set = { hello = true }

		filter(set, function(value)
			return value ~= "hello"
		end)

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

		expect(set.hello).to.equal(true)
	end)
end
