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

	it("should remove the elements at the given indices", function()
		local array = { 1, 2, 3, 4, 5 }

		local removed = RemoveIndices(array, 2, 4)

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

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

		RemoveIndices(array, 2, 4)

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

	it("should remove indices at given negative indices", function()
		local array = { 1, 2, 3, 4, 5 }

		local removed = RemoveIndices(array, -1, -3)

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