@@ -1707,6 +1707,13 @@ class InterpreterTests: XCTestCase {
17071707 }
17081708 }
17091709
1710+ func testIfNot( ) {
1711+ let program = " if not 3 < 1 { print true } "
1712+ let delegate = TestDelegate ( )
1713+ XCTAssertNoThrow ( try evaluate ( parse ( program) , delegate: delegate) )
1714+ XCTAssertEqual ( delegate. log, [ true ] )
1715+ }
1716+
17101717 // MARK: Math functions
17111718
17121719 func testInvokeMonadicFunction( ) {
@@ -2087,6 +2094,49 @@ class InterpreterTests: XCTestCase {
20872094 XCTAssertEqual ( delegate. log, [ true , true , false ] )
20882095 }
20892096
2097+ func testNotVsComparisonOperators( ) {
2098+ let program = """
2099+ print not 1 > 3
2100+ print not 1 < 3
2101+ """
2102+ let delegate = TestDelegate ( )
2103+ XCTAssertNoThrow ( try evaluate ( parse ( program) , delegate: delegate) )
2104+ XCTAssertEqual ( delegate. log, [ true , false ] )
2105+ }
2106+
2107+ func testNotVsEquality( ) {
2108+ let program = """
2109+ print not true = false
2110+ print not true <> false
2111+ print not 5 = 6
2112+ """
2113+ let delegate = TestDelegate ( )
2114+ XCTAssertNoThrow ( try evaluate ( parse ( program) , delegate: delegate) )
2115+ XCTAssertEqual ( delegate. log, [ true , false , true ] )
2116+ }
2117+
2118+ func testNotVsBooleanOperators( ) {
2119+ let program = """
2120+ print not true or false
2121+ print not true or true
2122+ print not true and true
2123+ """
2124+ let delegate = TestDelegate ( )
2125+ XCTAssertNoThrow ( try evaluate ( parse ( program) , delegate: delegate) )
2126+ XCTAssertEqual ( delegate. log, [ false , true , false ] )
2127+ }
2128+
2129+ func testNotVsParens( ) {
2130+ let program = """
2131+ print (not true) = false
2132+ print not(true) = false
2133+ print true = (not false)
2134+ """
2135+ let delegate = TestDelegate ( )
2136+ XCTAssertNoThrow ( try evaluate ( parse ( program) , delegate: delegate) )
2137+ XCTAssertEqual ( delegate. log, [ true , true , true ] )
2138+ }
2139+
20902140 // MARK: Member lookup
20912141
20922142 func testTupleVectorLookup( ) {
0 commit comments