return function()local p=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local A=p.Packages local r=require(A.Llama)local U=r.List local u=U.some it("\115\104\111\117\108\100 \118\097\108\105\100\097\116\101 \116\121\112\101\115",function()local p={{0},{{};0};{0;function() end}}for A=1,#p,1 do local r,U=pcall(function()u(unpack(p[A]))end);(expect(string.find(U,"\101\120\112\101\099\116\101\100\044 \103\111\116"))).to.be.ok()end end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \097 \098\111\111\108\101\097\110",function()local function p(p)return function()return p end end;(expect(u({},p(true)))).to.be.a("\098\111\111\108\101\097\110");(expect(u({},p(false)))).to.be.a("\098\111\111\108\101\097\110")end)it("\115\104\111\117\108\100 \112\097\115\115 \116\104\101 \118\097\108\117\101 \097\110\100 \105\110\100\101\120 \116\111 \116\104\101 \112\114\101\100\105\099\097\116\101",function()local p={"\098\097\114"}local function A(A,r)(expect(A)).to.equal(p[1]);(expect(r)).to.equal(1)end u(p,A)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \116\114\117\101 \105\102 \097\116 \108\101\097\115\116 \111\110\101 \101\110\116\114\121 \112\097\115\115\101\115 \116\104\101 \112\114\101\100\105\099\097\116\101",function()local p={"\102\111\111","\098\097\114","\098\097\122"}local function A(p)return p=="\102\111\111"end;(expect(u(p,A))).to.equal(true)end)it("\115\104\111\117\108\100 \114\101\116\117\114\110 \102\097\108\115\101 \105\102 \110\111 \101\110\116\114\105\101\115 \112\097\115\115 \116\104\101 \112\114\101\100\105\099\097\116\101",function()local p={"\102\111\111";"\098\097\114";"\098\097\122"}local function A(p)return p=="\113\117\120"end;(expect(u(p,A))).to.equal(false)end)end
return function()
	local ReplicatedStorage = game:GetService("ReplicatedStorage")

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

	local List = Llama.List
	local some = List.some

	it("should validate types", function()
		local args = {
			{ 0 },
			{ {}, 0 },
			{ 0, function() end},
		}

		for i = 1, #args do
			local _, err = pcall(function()
				some(unpack(args[i]))
			end)

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

	it("should return a boolean", function()
		local function always(bool)
			return function()
				return bool
			end
		end

		expect(some({}, always(true))).to.be.a("boolean")
		expect(some({}, always(false))).to.be.a("boolean")
	end)

	it("should pass the value and index to the predicate", function()
		local a = {
			"bar",
		}

		local function predicate(v, i)
			expect(v).to.equal(a[1])
			expect(i).to.equal(1)
		end

		some(a, predicate)
	end)

	it("should return true if at least one entry passes the predicate", function()
		local a = {
			"foo",
			"bar",
			"baz",
		}

		local function onlyFoo(v)
			return v == "foo"
		end

		expect(some(a, onlyFoo)).to.equal(true)
	end)

	it("should return false if no entries pass the predicate", function()
		local a = {
			"foo",
			"bar",
			"baz",
		}

		local function onlyQux(v)
			return v == "qux"
		end

		expect(some(a, onlyQux)).to.equal(false)
	end)
end