using Upsilon.BaseTypes.Number; using Upsilon.Evaluator; using Xunit; namespace UpsilonTests { public class ScopeTests { [Fact] public void LocalInnerScopeDoesNotOverrideGlobal() { const string input = @" a = 10 if true then local a = 100 end "; var script = new Script(input); Assert.Empty(script.Diagnostics.Messages); script.Evaluate(); Assert.Empty(script.Diagnostics.Messages); var a = script.GetVariable("a"); Assert.Equal(10, a); } [Fact] public void InnerScopeDoesOverrideGlobal() { const string input = @" a = 10 if true then a = 100 end b = a "; var script = new Script(input); Assert.Empty(script.Diagnostics.Messages); script.Evaluate(); Assert.Empty(script.Diagnostics.Messages); var a = script.GetVariable("a"); Assert.Equal(100, a); } } }