Пример #1
0
def test_error_files(monkeypatch, tmp_path, capsys):
    (tmp_path / 'a').write_text(
        'hello :- f; g; f, g, f, g, (((((f)), ((g, ggg)), g, ggg, fgfgfg, fg))).\n'
    )
    (tmp_path / 'b').write_text(
        'hello :- (f; g)); f, g, f, g, f, g, ggg, g, ggg, fgfgfg, fg.\n')
    (tmp_path / 'c').write_text(
        'Ahello :- f; g; f, g, f, g, f, g, ggg, g, ggg, fgfgfg, fg.\n')
    (tmp_path / 'd').write_text(
        '9hello :- f; g; f, g, f, g, f, g, ggg, g, ggg, fgfgfg, fg.\n')
    (tmp_path / 'e').write_text(
        'hello :- f; g; f, g, f, g, f\\, g, ggg, g, ggg, fgfgfg, fg.\n')
    (tmp_path / 'f').write_text(
        'hello :- f; g; (f, g, f, g, f,) g, ggg, g, ggg, fgfgfg, fg.\n')

    monkeypatch.chdir(tmp_path)
    syntacticalAnalyzer.main(['a', 'b', 'c', 'd', 'e', 'f'])
    out, err = capsys.readouterr()
    assert err == ''
    assert out == 'a: Correct\n' \
                  'b: IncompleteToken: at line 77\n' \
                  'c: Correct\n' \
                  'd: IllegalCharacter: \'9\', line 79\n' \
                  'e: IllegalCharacter: \'\\\', line 79\n' \
                  'f: IncompleteToken: at line 79\n'
Пример #2
0
def test_one_simple_file(monkeypatch, tmp_path, capsys):
    (tmp_path / 'a.txt').write_text(
        'hello :- f; g; f, g, f, g, f, g, ggg, g, ggg, fgfgfg, fg.\n')
    monkeypatch.chdir(tmp_path)
    syntacticalAnalyzer.main(['a.txt'])
    out, err = capsys.readouterr()
    assert err == ''
    assert out == 'Correct\n'
Пример #3
0
def test_line(monkeypatch, tmp_path, capsys):
    monkeypatch.setattr(
        'sys.stdin',
        io.StringIO('_hASDasdellfoasf :- a. asdas:- ((((asd)))).'))
    syntacticalAnalyzer.main([])
    out, err = capsys.readouterr()
    assert err == ''
    assert out == 'Correct\n'
Пример #4
0
def test_simple_files(monkeypatch, tmp_path, capsys):
    (tmp_path / 'a.txt').write_text(
        'hello :- f; g; f, g, f, g, f, g, ggg, g, ggg, fgfgfg, fg.\n')
    (tmp_path / 'b.txt').write_text(
        '_hASDasdellfoasf :- fasd; g_as; fAD, _g, f, g, f, g, ggg, g, ggg, fgfgfg, fg.\n'
    )
    monkeypatch.chdir(tmp_path)
    syntacticalAnalyzer.main(['a.txt', 'b.txt'])
    out, err = capsys.readouterr()
    assert err == ''
    assert out == 'a.txt: Correct\n' \
                  'b.txt: Correct\n'
Пример #5
0
def test_error_line_par(monkeypatch, tmp_path, capsys):
    monkeypatch.setattr(
        'sys.stdin',
        io.StringIO(
            '_hASDasdellfoasf :- a.\n'
            'asd\n :-\n asd, \n\n\n sa\n\n\n\n.'
            'asdafdscjhbea'
            ':- aasdaSALKJFDNAFKLAjdsljdsajflkKJBFKJQWNfdsfhldsajfhkjsdhfkjdhfkjdshfkjehkjskdbcjhbea\n\n\n\n\n sad\n\n\n'
            ',\n\n\n\n\n (\n\n\n\n asd;\n\n\n asd\n\n\n)\n\n\n.'))
    syntacticalAnalyzer.main([])
    out, err = capsys.readouterr()
    assert err == ''
    assert out == 'IncompleteToken: at line 50\n'
Пример #6
0
def test_error_files2(monkeypatch, tmp_path, capsys):
    (tmp_path / 'a').write_text(
        'asd. \n a:-s. \n\n a.\n :- f; g, g, (((((f)), ((g, ggg)), g, ggg, fgfgfg, fg))).\n'
    )
    (tmp_path / 'b').write_text(
        'asd. \n a:-s. \n\n a.\n hello :- (f g); f, g, ggg, g, (ggg, (fgf,(gf;g), d)), f.\n'
    )
    (tmp_path / 'c').write_text('a. a. a:-.')
    (tmp_path / 'd').write_text('a. a. a:-a,a,a. a:-(((((((f))))))).')
    (tmp_path /
     'e').write_text('a. a. a:-a,a,a. a:-(((((((f))))))).a:-a, , b.')

    monkeypatch.chdir(tmp_path)
    syntacticalAnalyzer.main(['a', 'b', 'c', 'd', 'e'])
    out, err = capsys.readouterr()
    assert err == ''
    assert out == 'a: IncompleteToken: at line 84\n' \
                  'b: IncompleteToken: at line 89\n' \
                  'c: IncompleteToken: at line 90\n' \
                  'd: Correct\n' \
                  'e: IncompleteToken: at line 90\n'