public void Test() { List <FlagValue> flags = new List <FlagValue> { new FlagValue("a", false), new FlagValue("b", true), new FlagValue("c", 10), }; Assert.IsTrue(StoryModel.Test("a == false", flags)); Assert.IsFalse(StoryModel.Test("a == true", flags)); Assert.IsTrue(StoryModel.Test("b == true", flags)); Assert.IsFalse(StoryModel.Test("b == false", flags)); Assert.IsTrue(StoryModel.Test("b == 1", flags)); Assert.IsFalse(StoryModel.Test("b == 2", flags)); Assert.IsTrue(StoryModel.Test("c == 10", flags)); Assert.IsFalse(StoryModel.Test("c != 10", flags)); Assert.IsTrue(StoryModel.Test("c < 11", flags)); Assert.IsTrue(StoryModel.Test("c > 9", flags)); Assert.IsFalse(StoryModel.Test("c > 11", flags)); Assert.IsFalse(StoryModel.Test("c < 9", flags)); Assert.IsTrue(StoryModel.Test("c <= 10", flags)); Assert.IsTrue(StoryModel.Test("c >= 10", flags)); // TODO create a custom exception type Assert.Throws <System.Exception> (() => StoryModel.Test("a < true", flags)); }