public void NotTest() { Combinator.Not(Combinator.Sequence("inpXtString".Select(Chars.Char))) .Run("inputString".AsStream()) .Case( success: (restStream, _) => { Assert.True(restStream.Current.HasValue); Assert.AreEqual('i', restStream.Current.Value.Item0); Assert.AreEqual(1, restStream.Current.Value.Item1.Line); Assert.AreEqual(1, restStream.Current.Value.Item1.Column); }, failure: (restStream, value) => Assert.Fail()); Combinator.Not(Combinator.Sequence("inputString".Select(Chars.Char))) .Run("inputString".AsStream()) .Case( success: (restStream, _) => Assert.Fail(), failure: (restStream, value) => { Assert.True(restStream.Current.HasValue); Assert.AreEqual('i', restStream.Current.Value.Item0); Assert.AreEqual(1, restStream.Current.Value.Item1.Line); Assert.AreEqual(1, restStream.Current.Value.Item1.Column); }); }