local T=require(script.Parent.Util.BasicallyIdentical)return function()local Z=require(script.Parent.Invert)it("\116\104\114\111\119\115 \105\102 \097\114\103\117\109\101\110\116 \105\115 \110\111\116 \097 \067\111\108\111\114\051",function()(expect(pcall(Z,true))).to.equal(false)end)it("\105\110\118\101\114\116\115 \098\108\097\099\107 \116\111 \119\104\105\116\101",function()(expect(T(Color3.new(1,1,1),Z(Color3.new())))).to.equal(true)end)it("\105\110\118\101\114\116\115 \119\104\105\116\101 \116\111 \098\108\097\099\107",function()(expect(T(Color3.new(),Z(Color3.new(1,1,1))))).to.equal(true)end)it("\107\101\101\112\115 \103\114\101\121 \116\104\101 \115\097\109\101",function()local r=Color3.new(.5,.5,.5);(expect(T(r,Z(r)))).to.equal(true)end)it("\105\110\118\101\114\116\115 \114\101\100 \116\111 \099\121\097\110",function()local r=Color3.new(1,0,0)local i=Color3.new(0,1,1);(expect(T(i,Z(r)))).to.equal(true)end)end
local BasicallyIdentical = require(script.Parent.Util.BasicallyIdentical)

return function()
	local Invert = require(script.Parent.Invert)

	it("throws if argument is not a Color3", function()
		expect(pcall(Invert, true)).to.equal(false)
	end)

	it("inverts black to white", function()
		expect(BasicallyIdentical(Color3.new(1, 1, 1), Invert(Color3.new()))).to.equal(true)
	end)

	it("inverts white to black", function()
		expect(BasicallyIdentical(Color3.new(), Invert(Color3.new(1, 1, 1)))).to.equal(true)
	end)

	it("keeps grey the same", function()
		local grey = Color3.new(0.5, 0.5, 0.5)
		expect(BasicallyIdentical(grey, Invert(grey))).to.equal(true)
	end)

	it("inverts red to cyan", function()
		local red = Color3.new(1, 0, 0)
		local cyan = Color3.new(0, 1, 1)

		expect(BasicallyIdentical(cyan, Invert(red))).to.equal(true)
	end)
end
