return function()local C=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local q=C.Packages local t=require(q.Llama)local O=t.Dictionary local G=O.equals it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \098\111\111\108\101\097\110",function()local C={};(expect(G(C,C))).to.be.a("\098\111\111\108\101\097\110");(expect(G(C,{}))).to.be.a("\098\111\111\108\101\097\110");(expect(G({},{1}))).to.be.a("\098\111\111\108\101\097\110")end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \119\104\101\116\104\101\114 \112\114\111\118\105\100\101\100 \111\098\106\101\099\116\115 \104\097\118\101 \114\101\102\101\114\101\110\099\101 \101\113\117\097\108\105\116\121",function()local C={foo=1;bar=2,baz=3,qux={}}local q={foo=1;bar=2,baz=3;qux=C.qux}local t={foo=1;bar=2,baz=3;qux={}};(expect(G(C,q))).to.equal(true);(expect(G(C,t))).to.equal(false)end)it("\115\104\111\117\108\100 \119\111\114\107 \119\105\116\104 \097\110 \097\114\098\105\116\114\097\114\121 \110\117\109\098\101\114 \111\102 \111\098\106\101\099\116\115",function()local C={foo=1;bar=2,baz=3}local q=C local t={foo=1;bar=2;baz=3}local O={oof=4;rab=5,zab=6}local J=O local F={oof=4,rab=5;zab=6};(expect(G(C,q,t))).to.equal(true);(expect(G(C,q,t,O,J,F))).to.equal(false)end)it("\115\104\111\117\108\100 \119\111\114\107 \119\105\116\104 \111\110\101 \111\098\106\101\099\116",function()local C={};(expect(G(C))).to.equal(true)end)it("\115\104\111\117\108\100 \119\111\114\107 \119\105\116\104 \122\101\114\111 \111\098\106\101\099\116\115",function()(expect(G())).to.equal(true)end)it("\115\104\111\117\108\100 \119\111\114\107 \102\111\114 \097\110\121 \116\121\112\101 \111\102 \111\098\106\101\099\116\115",function()(expect(G(1,1))).to.equal(true);(expect(G(1,"\097"))).to.equal(false)end)end
return function()
	local ReplicatedStorage = game:GetService("ReplicatedStorage")

	local Packages = ReplicatedStorage.Packages
	local Llama = require(Packages.Llama)

	local Dictionary = Llama.Dictionary
	local equals = Dictionary.equals

	it("should return a boolean", function()
		local a = {}

		expect(equals(a, a)).to.be.a("boolean")
		expect(equals(a, {})).to.be.a("boolean")
		expect(equals({}, { 1 })).to.be.a("boolean")
	end)

	it("should return whether provided objects have reference equality", function()
		local a = {
			foo = 1,
			bar = 2,
			baz = 3,
			qux = {},
		}
		local b = {
			foo = 1,
			bar = 2,
			baz = 3,
			qux = a.qux,
		}
		local c = {
			foo = 1,
			bar = 2,
			baz = 3,
			qux = {},
		}

		expect(equals(a, b)).to.equal(true)
		expect(equals(a, c)).to.equal(false)
	end)

	it("should work with an arbitrary number of objects", function()
		local a = {
			foo = 1,
			bar = 2,
			baz = 3,
		}
		local b = a
		local c = {
			foo = 1,
			bar = 2,
			baz = 3,
		}
		local d = {
			oof = 4,
			rab = 5,
			zab = 6,
		}
		local e = d
		local f = {
			oof = 4,
			rab = 5,
			zab = 6,
		}

		expect(equals(a, b, c)).to.equal(true)
		expect(equals(a, b, c, d, e, f)).to.equal(false)
	end)

	it("should work with one object", function()
		local a = {}

		expect(equals(a)).to.equal(true)
	end)

	it("should work with zero objects", function()
		expect(equals()).to.equal(true)
	end)

	it("should work for any type of objects", function()
		expect(equals(1, 1)).to.equal(true)
		expect(equals(1, "a")).to.equal(false)
	end)
end