return function()local w=require(script.Parent.unshift)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \110\101\119 \097\114\114\097\121 \119\105\116\104 \116\104\101 \103\105\118\101\110 \118\097\108\117\101 \097\116 \116\104\101 \098\101\103\105\110\110\105\110\103",function()local G={1;2;3}local b=w(G,4);(expect(b)).to.be.a("\116\097\098\108\101");(expect(#b)).to.equal(4);(expect(b[1])).to.equal(4);(expect(b[2])).to.equal(1);(expect(b[3])).to.equal(2);(expect(b[4])).to.equal(3)end)it("\115\104\111\117\108\100 \112\114\101\112\101\110\100 \109\117\108\116\105\112\108\101 \118\097\108\117\101\115 \116\111 \116\104\101 \097\114\114\097\121",function()local G={1;2;3}local b=w(G,4,5,6);(expect(b)).to.be.a("\116\097\098\108\101");(expect(#b)).to.equal(6);(expect(b[1])).to.equal(4);(expect(b[2])).to.equal(5);(expect(b[3])).to.equal(6);(expect(b[4])).to.equal(1);(expect(b[5])).to.equal(2);(expect(b[6])).to.equal(3)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 G={1;2;3}w(G,4);(expect(G[1])).to.equal(1)end)end
return function()
	local Unshift = require(script.Parent.unshift)

	it("should return a new array with the given value at the beginning", function()
		local array = { 1, 2, 3 }

		local newArray = Unshift(array, 4)

		expect(newArray).to.be.a("table")
		expect(#newArray).to.equal(4)

		expect(newArray[1]).to.equal(4)
		expect(newArray[2]).to.equal(1)
		expect(newArray[3]).to.equal(2)
		expect(newArray[4]).to.equal(3)
	end)

	it("should prepend multiple values to the array", function()
		local array = { 1, 2, 3 }

		local newArray = Unshift(array, 4, 5, 6)

		expect(newArray).to.be.a("table")
		expect(#newArray).to.equal(6)

		expect(newArray[1]).to.equal(4)
		expect(newArray[2]).to.equal(5)
		expect(newArray[3]).to.equal(6)
		expect(newArray[4]).to.equal(1)
		expect(newArray[5]).to.equal(2)
		expect(newArray[6]).to.equal(3)
	end)

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

		Unshift(array, 4)

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