Пример #1
0
def test_repl_gcd_example_multiline(capsys):
    session = """
    > (define not (boolean) (if boolean 0 1))
    <UserFunction (not boolean)>
    > (define <> (x y) (not (= x y)))
    <UserFunction (<> x y)>
    > (define mod (m n) (- m (* n (/ m n))))
    <UserFunction (mod m n)>
    > (define gcd (m n)
    ...  (begin
    ...      (let r (mod m n))
    ...      (while (<> r 0)
    ...           (begin
    ...                (let m n)
    ...                (let n r)
    ...                (let r (mod m n))))
    ... n))
    <UserFunction (gcd m n)>
    > (gcd 42 56)
    14
    """
    dlg = Dialogue(session)
    repl(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #2
0
def test_repl_gcd_example(capsys):
    session = """
    > (define mod (m n) (- m (* n (/ m n))))
    <UserFunction (mod m n)>
    > (define gcd (a b) (if (= b 0) a (gcd b (mod a b))))
    <UserFunction (gcd a b)>
    > (gcd 6 15)
    3
    """
    dlg = Dialogue(session)
    repl(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #3
0
def test_repl_quit(capsys):
    dlg = Dialogue('> .q\n')
    repl(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #4
0
def test_repl(capsys, session):
    dlg = Dialogue(session)
    repl(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #5
0
def test_reverser(monkeypatch, capsys, session):
    dlg = Dialogue(session)
    reverser(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #6
0
def test_uppercaser_multiple(capsys, session):
    dlg = Dialogue(session)
    uppercaser(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #7
0
def test_uppercaser(capsys):
    dlg = Dialogue('> Xyz\nXYZ\n')
    uppercaser(dlg.fake_input)
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)
Пример #8
0
def test_normalize(lines, want):
    assert want == normalize(lines)
Пример #9
0
def test_multiline_input(capsys, session, result):
    dlg = Dialogue(session)
    got = multiline_input('1|', '2|', input_fn=dlg.fake_input)
    assert result == got
    captured = capsys.readouterr()
    assert dlg.session == normalize(captured.out)