return function()local U=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local s=U.Packages local H=require(s.Llama)local X=H.List local Y=X.find it("\115\104\111\117\108\100 \118\097\108\105\100\097\116\101 \116\121\112\101\115",function()local U,s=pcall(function()Y(0)end);(expect(string.find(s,"\101\120\112\101\099\116\101\100\044 \103\111\116"))).to.be.ok()end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\104\101 \099\111\114\114\101\099\116 \105\110\100\101\120",function()local U={5;4,3,2,1};(expect(Y(U,1))).to.equal(5);(expect(Y(U,2))).to.equal(4);(expect(Y(U,3))).to.equal(3);(expect(Y(U,4))).to.equal(2);(expect(Y(U,5))).to.equal(1)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \110\105\108 \119\104\101\110 \116\104\101 \103\105\118\101\110 \118\097\108\117\101 \105\115 \110\111\116 \102\111\117\110\100",function()local U={1;2;3};(expect(Y(U,4))).never.to.be.ok();(expect(type(Y(U,4)))).to.equal("\110\105\108")end)it("\115\104\111\117\108\100 \119\111\114\107 \119\105\116\104 \097\110 \101\109\112\116\121 \116\097\098\108\101",function()(expect(Y({},1))).never.to.be.ok()end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\104\101 \105\110\100\101\120 \111\102 \116\104\101 \102\105\114\115\116 \118\097\108\117\101 \102\111\117\110\100",function()local U={1;2;2};(expect(Y(U,2))).to.equal(2)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\104\101 \105\110\100\101\120 \111\102 \116\104\101 \102\105\114\115\116 \118\097\108\117\101 \102\111\117\110\100 \102\114\111\109 \115\116\097\114\116 \105\110\100\101\120",function()local U={1,3,3,2;3,3,2};(expect(Y(U,2,5))).to.equal(7)end)it("\115\104\111\117\108\100 \097\099\099\101\112\116 \097 \048 \111\114 \110\101\103\097\116\105\118\101 \115\116\097\114\116 \105\110\100\101\120",function()local U={1,3;3;2,3,3;2};(expect(Y(U,2,-5))).to.equal(4);(expect(Y(U,2,0))).to.equal(7)end)end
return function()
	local ReplicatedStorage = game:GetService("ReplicatedStorage")

	local Packages = ReplicatedStorage.Packages
	local Llama = require(Packages.Llama)

	local List = Llama.List
	local find = List.find

	it("should validate types", function()
		local _, err = pcall(function()
			find(0)
		end)

		expect(string.find(err, "expected, got")).to.be.ok()
	end)

	it("should return the correct index", function()
		local a = { 5, 4, 3, 2, 1 }

		expect(find(a, 1)).to.equal(5)
		expect(find(a, 2)).to.equal(4)
		expect(find(a, 3)).to.equal(3)
		expect(find(a, 4)).to.equal(2)
		expect(find(a, 5)).to.equal(1)
	end)

	it("should return nil when the given value is not found", function()
		local a = { 1, 2, 3 }

		expect(find(a, 4)).never.to.be.ok()
		expect(type(find(a, 4))).to.equal("nil")
	end)

	it("should work with an empty table", function()
		expect(find({}, 1)).never.to.be.ok()
	end)

	it("should return the index of the first value found", function()
		local a = {1, 2, 2}

		expect(find(a, 2)).to.equal(2)
	end)

	it("should return the index of the first value found from start index", function()
		local a = { 1, 3, 3, 2, 3, 3, 2 }

		expect(find(a, 2, 5)).to.equal(7)
	end)

	it("should accept a 0 or negative start index", function()
		local a = { 1, 3, 3, 2, 3, 3, 2 }

		expect(find(a, 2, -5)).to.equal(4)
		expect(find(a, 2, 0)).to.equal(7)
	end)
end