Source

duhton / test / test_int.py

from support import evaluate


def test_addition():
    assert evaluate("(+ 40 2)") == 42
    assert evaluate("(+ 30 3 7 2)") == 42
    assert evaluate("(+ 30)") == 30
    assert evaluate("(+)") == 0
    assert evaluate("(+ (+ 1 2) (+ 3 4))") == 10

def test_subtraction():
    assert evaluate("(- 45 3)") == 42
    assert evaluate("(- 30 3 7 2)") == 18
    assert evaluate("(- 121)") == 121
    assert evaluate("(-)") == 0
    assert evaluate("(- 100 (- 20 1))") == 81

def test_mul():
    assert evaluate("(* 6 7)") == 42
    assert evaluate("(* 2 3 7)") == 42
    assert evaluate("(* (+ 5 1) (+ 6 1))") == 42

def test_div():
    assert evaluate("(/ 11 2)") == 5
    assert evaluate("(/ 29 2 3)") == 4

def test_cmp():
    assert evaluate("(<  6 6)") == 0
    assert evaluate("(<= 6 6)") == 1
    assert evaluate("(== 6 6)") == 1
    assert evaluate("(!= 6 6)") == 0
    assert evaluate("(>  6 6)") == 0
    assert evaluate("(>= 6 6)") == 1
    #
    assert evaluate("(<  6 7)") == 1
    assert evaluate("(<= 6 7)") == 1
    assert evaluate("(== 6 7)") == 0
    assert evaluate("(!= 6 7)") == 1
    assert evaluate("(>  6 7)") == 0
    assert evaluate("(>= 6 7)") == 0
    #
    assert evaluate("(<  7 6)") == 0
    assert evaluate("(<= 7 6)") == 0
    assert evaluate("(== 7 6)") == 0
    assert evaluate("(!= 7 6)") == 1
    assert evaluate("(>  7 6)") == 1
    assert evaluate("(>= 7 6)") == 1
    #
    assert evaluate("(< (+ 10 2) (+ 4 5))") == 0
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.