return function()local D=require(script.Parent)describe("\081\117\101\117\101\046\110\101\119",function()it("\115\104\111\117\108\100 \115\117\112\112\111\114\116 \118\097\114\097\110\103\115 \113\117\101\117\101",function()local a=D.new()a:enqueue("\105\110\100\101\120\049","\118\097\108\117\101\049",{index1="\118\097\108\117\101\049"})a:enqueue("\105\110\100\101\120\050","\118\097\108\117\101\050",{index2="\118\097\108\117\101\050"})local S,s,e=a:dequeue();(expect(S)).to.be.equal("\105\110\100\101\120\049");(expect(s)).to.be.equal("\118\097\108\117\101\049");(expect(e.index1)).to.be.equal("\118\097\108\117\101\049")local X,p,h=a:dequeue();(expect(X)).to.be.equal("\105\110\100\101\120\050");(expect(p)).to.be.equal("\118\097\108\117\101\050");(expect(h.index2)).to.be.equal("\118\097\108\117\101\050")end)end)end
return function()
	local Queue = require(script.Parent)

	describe("Queue.new", function()
		it("should support varangs queue", function()
			local queue = Queue.new()

			queue:enqueue("index1", "value1", {
				index1 = "value1",
			})

			queue:enqueue("index2", "value2", {
				index2 = "value2",
			})

			local index1, value1, tbl1 = queue:dequeue()
			expect(index1).to.be.equal("index1")
			expect(value1).to.be.equal("value1")
			expect(tbl1.index1).to.be.equal("value1")

			local index2, value2, tbl2 = queue:dequeue()
			expect(index2).to.be.equal("index2")
			expect(value2).to.be.equal("value2")
			expect(tbl2.index2).to.be.equal("value2")
		end)
	end)
end
