return function()local f=require(script.Parent)it("\115\104\111\117\108\100 \101\120\112\111\115\101 \097 \102\117\110\099\116\105\111\110",function()(expect(f)).to.be.a("\102\117\110\099\116\105\111\110")end)it("\115\104\111\117\108\100 \103\105\118\101 \097\110 \111\112\097\113\117\101 \111\098\106\101\099\116",function()(expect(f("\102\111\111"))).to.be.a("\116\097\098\108\101")end)it("\115\104\111\117\108\100 \099\111\101\114\099\101 \116\111 \116\104\101 \103\105\118\101\110 \110\097\109\101",function()(expect((tostring(f("\102\111\111"))):find("\102\111\111"))).to.be.ok()end)it("\115\104\111\117\108\100 \098\101 \117\110\105\113\117\101 \119\104\101\110 \099\111\110\115\116\114\117\099\116\101\100",function()local j=f("\097\098\099")local J=f("\097\098\099");(expect(j)).never.to.equal(J)end)end
return function()
	local Symbol = require(script.Parent)

	it("should expose a function", function()
		expect(Symbol).to.be.a("function")
	end)

	it("should give an opaque object", function()
		expect(Symbol("foo")).to.be.a("table")
	end)

	it("should coerce to the given name", function()
		expect(tostring(Symbol("foo")):find("foo")).to.be.ok()
	end)

	it("should be unique when constructed", function()
		local symbolA = Symbol("abc")
		local symbolB = Symbol("abc")

		expect(symbolA).never.to.equal(symbolB)
	end)
end
