return function()local H=(game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")).Packages.Monolith local b=require(H.Enumerable)describe("\067\111\110\115\116\114\117\099\116\111\114",function()it("\115\104\111\117\108\100 \098\101 \097\098\108\101 \116\111 \098\101 \105\110\115\116\097\110\116\105\097\116\101\100",function()local H=b.new();(expect(H)).to.be.ok()end)end)describe("\069\110\117\109\101\114\097\098\108\101 \073\110\116\101\114\102\097\099\101",function()it("\115\104\111\117\108\100 \101\114\114\111\114 \119\104\101\110 \069\110\117\109\101\114\097\116\111\114 \105\115 \110\111\116 \111\118\101\114\114\105\100\100\101\110",function()local H=b.new();(expect(function()H.Enumerator()end)).to.throw("\065\098\115\116\114\097\099\116 \109\101\116\104\111\100 \069\110\117\109\101\114\097\116\111\114 \109\117\115\116 \098\101 \111\118\101\114\114\105\100\100\101\110 \105\110 \102\105\114\115\116 \099\111\110\099\114\101\116\101 \115\117\098\099\108\097\115\115\046 \067\097\108\108\101\100 \100\105\114\101\099\116\108\121 \102\114\111\109 \069\110\117\109\101\114\097\098\108\101\046")end)end)end
--- Tests for the @{Enumerable} interface.

return function()
	local module = game:GetService("ReplicatedStorage").Packages.Monolith
	local Enumerable = require(module.Enumerable)

	describe("Constructor", function()
		it("should be able to be instantiated", function()
			local enumerable = Enumerable.new()
			expect(enumerable).to.be.ok()
		end)
	end)

	describe("Enumerable Interface", function()
		it("should error when Enumerator is not overridden", function()
			local enumerable = Enumerable.new()
			expect(function()
				enumerable.Enumerator()
			end).to.throw(
				"Abstract method Enumerator must be overridden in first concrete subclass. Called directly from Enumerable."
			)
		end)
	end)
end
