return function()local e=require(script.Parent.concat)it("\115\104\111\117\108\100 \106\111\105\110 \109\117\108\116\105\112\108\101 \097\114\114\097\121\115 \116\111\103\101\116\104\101\114 \105\110\116\111 \097 \115\105\110\103\108\101 \097\114\114\097\121",function()local O={1;2;3}local n={4;5,6}local m=e(O,n);(expect(m)).to.be.a("\116\097\098\108\101");(expect(m[1])).to.equal(1);(expect(m[2])).to.equal(2);(expect(m[3])).to.equal(3);(expect(m[4])).to.equal(4);(expect(m[5])).to.equal(5);(expect(m[6])).to.equal(6)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097\110 \101\109\112\116\121 \097\114\114\097\121 \105\102 \110\111 \097\114\114\097\121\115 \097\114\101 \103\105\118\101\110",function()local O=e();(expect(O)).to.be.a("\116\097\098\108\101");(expect(#O)).to.equal(0)end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \110\105\108 \118\097\108\117\101\115",function()local O=e(nil,{1;2,3})local n=e({1;2,3},nil);(expect(O)).to.be.a("\116\097\098\108\101");(expect(#O)).to.equal(3);(expect(n)).to.be.a("\116\097\098\108\101");(expect(#n)).to.equal(3)end)it("\115\104\111\117\108\100 \110\111\116 \099\111\112\121 \116\104\101 \110\101\115\116\101\100 \097\114\114\097\121\115",function()local O={1,2,{3;4}}local n={5,6;{7,8}}local m=e(O,n);(expect(m)).to.be.a("\116\097\098\108\101");(expect(m[1])).to.equal(1);(expect(m[2])).to.equal(2);(expect(m[3])).to.equal(O[3]);(expect(m[4])).to.equal(5);(expect(m[5])).to.equal(6);(expect(m[6])).to.equal(n[3])end)end
return function()
	local Concat = require(script.Parent.concat)

	it("should join multiple arrays together into a single array", function()
		local table1 = { 1, 2, 3 }
		local table2 = { 4, 5, 6 }

		local new = Concat(table1, table2)

		expect(new).to.be.a("table")

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

	it("should return an empty array if no arrays are given", function()
		local new = Concat()

		expect(new).to.be.a("table")
		expect(#new).to.equal(0)
	end)

	it("should accept nil values", function()
		local new = Concat(nil, { 1, 2, 3 })
		local new2 = Concat({ 1, 2, 3 }, nil)

		expect(new).to.be.a("table")
		expect(#new).to.equal(3)

		expect(new2).to.be.a("table")
		expect(#new2).to.equal(3)
	end)

	it("should not copy the nested arrays", function()
		local table1 = { 1, 2, { 3, 4 } }
		local table2 = { 5, 6, { 7, 8 } }

		local new = Concat(table1, table2)

		expect(new).to.be.a("table")

		expect(new[1]).to.equal(1)
		expect(new[2]).to.equal(2)
		expect(new[3]).to.equal(table1[3])
		expect(new[4]).to.equal(5)
		expect(new[5]).to.equal(6)
		expect(new[6]).to.equal(table2[3])
	end)
end
