return function()local U=require(script.Parent.shift)it("\115\104\111\117\108\100 \114\101\109\111\118\101 \116\104\101 \102\105\114\115\116 \105\116\101\109 \102\114\111\109 \116\104\101 \097\114\114\097\121",function()local k={1,2;3}local t=U(k);(expect(t[1])).to.equal(2);(expect(t[2])).to.equal(3);(expect(t[3])).never.to.be.ok()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 \097\114\114\097\121",function()local k={1;2,3}U(k);(expect(k[1])).to.equal(1)end)it("\115\104\111\117\108\100 \115\104\105\102\116 \103\105\118\101\110 \097 \110\117\109\098\101\114 \111\102 \105\116\101\109\115 \116\111 \114\101\109\111\118\101",function()local k={1,2;3;4,5}local t=U(k,2);(expect(t[1])).to.equal(3);(expect(t[2])).to.equal(4);(expect(t[3])).to.equal(5);(expect(t[4])).never.to.be.ok()end)end
return function()
	local Shift = require(script.Parent.shift)

	it("should remove the first item from the array", function()
		local array = { 1, 2, 3 }

		local shifted = Shift(array)

		expect(shifted[1]).to.equal(2)
		expect(shifted[2]).to.equal(3)
		expect(shifted[3]).never.to.be.ok()
	end)

	it("should not modify the original array", function()
		local array = { 1, 2, 3 }

		Shift(array)

		expect(array[1]).to.equal(1)
	end)

	it("should shift given a number of items to remove", function()
		local array = { 1, 2, 3, 4, 5 }

		local shifted = Shift(array, 2)

		expect(shifted[1]).to.equal(3)
		expect(shifted[2]).to.equal(4)
		expect(shifted[3]).to.equal(5)
		expect(shifted[4]).never.to.be.ok()
	end)
end
