#Test scoping rules for functions

set -e smurf

function setter 
set smurf green
end

function unsetter 
set -e smurf
end

function call1 
set smurf blue; setter; if test $smurf = blue; echo Test 1 pass; else; echo Test 1 fail; end
end

function call2 
set smurf blue; unsetter; if test $smurf = blue; echo Test 2 pass; else; echo Test 2 fail; end
end

call1
call2

function call3 
setter; if test $smurf = green; echo Test 3 pass; else; echo Test 3 fail; end
end

function call4 
unsetter; if not set -q smurf; echo Test 4 pass; else; echo Test 4 fail; end
end

set -g smurf yellow
call3
call4