return function()local G=require(script.Parent.slice)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \115\108\105\099\101 \111\102 \116\104\101 \103\105\118\101\110 \097\114\114\097\121",function()local T={1;2,3}local w=G(T,2,3);(expect(w)).to.be.a("\116\097\098\108\101");(expect(#w)).to.equal(2);(expect(w[1])).to.equal(2);(expect(w[2])).to.equal(3)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \115\108\105\099\101 \111\102 \116\104\101 \103\105\118\101\110 \097\114\114\097\121 \119\105\116\104 \097 \110\101\103\097\116\105\118\101 \115\116\097\114\116 \105\110\100\101\120",function()local T={1,2;3}local w=G(T,-1,3);(expect(w)).to.be.a("\116\097\098\108\101");(expect(#w)).to.equal(2);(expect(w[1])).to.equal(2);(expect(w[2])).to.equal(3)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \115\108\105\099\101 \111\102 \116\104\101 \103\105\118\101\110 \097\114\114\097\121 \119\105\116\104 \097 \110\101\103\097\116\105\118\101 \101\110\100 \105\110\100\101\120",function()local T={1,2,3}local w=G(T,1,-1);(expect(w)).to.be.a("\116\097\098\108\101");(expect(#w)).to.equal(2);(expect(w[1])).to.equal(1);(expect(w[2])).to.equal(2)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \115\108\105\099\101 \111\102 \116\104\101 \103\105\118\101\110 \097\114\114\097\121 \119\105\116\104 \097 \110\101\103\097\116\105\118\101 \115\116\097\114\116 \097\110\100 \101\110\100 \105\110\100\101\120",function()local T={1,2;3}local w=G(T,-2,-1);(expect(w)).to.be.a("\116\097\098\108\101");(expect(#w)).to.equal(2);(expect(w[1])).to.equal(1);(expect(w[2])).to.equal(2)end)end
return function()
	local Slice = require(script.Parent.slice)

	it("should return a slice of the given array", function()
		local array = { 1, 2, 3 }

		local slice = Slice(array, 2, 3)

		expect(slice).to.be.a("table")
		expect(#slice).to.equal(2)
		expect(slice[1]).to.equal(2)
		expect(slice[2]).to.equal(3)
	end)

	it("should return a slice of the given array with a negative start index", function()
		local array = { 1, 2, 3 }

		local slice = Slice(array, -1, 3)

		expect(slice).to.be.a("table")
		expect(#slice).to.equal(2)
		expect(slice[1]).to.equal(2)
		expect(slice[2]).to.equal(3)
	end)

	it("should return a slice of the given array with a negative end index", function()
		local array = { 1, 2, 3 }

		local slice = Slice(array, 1, -1)

		expect(slice).to.be.a("table")
		expect(#slice).to.equal(2)
		expect(slice[1]).to.equal(1)
		expect(slice[2]).to.equal(2)
	end)

	it("should return a slice of the given array with a negative start and end index", function()
		local array = { 1, 2, 3 }

		local slice = Slice(array, -2, -1)

		expect(slice).to.be.a("table")
		expect(#slice).to.equal(2)
		expect(slice[1]).to.equal(1)
		expect(slice[2]).to.equal(2)
	end)
end
