Skip to content

Commit

Permalink
make more fixes in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bygu4 committed Jan 4, 2025
1 parent d3d315a commit 2cd1679
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
20 changes: 11 additions & 9 deletions pyformlang/cfg/tests/test_recursive_decent_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@


@pytest.fixture
def parser() -> RecursiveDecentParser:
def example_parser() -> RecursiveDecentParser:
cfg = CFG.from_text("""
E -> S + S
E -> S * S
Expand All @@ -21,14 +21,16 @@ def parser() -> RecursiveDecentParser:


class TestRecursiveDecentParser:
def test_creation(self, parser) -> None:
assert parser is not None
def test_creation(self,
example_parser: RecursiveDecentParser) -> None:
assert example_parser is not None

def test_get_parsing_tree(self, parser) -> None:
assert parser.is_parsable(
def test_get_parsing_tree(self,
example_parser: RecursiveDecentParser) -> None:
assert example_parser.is_parsable(
["(", "int", "+", "(", "int", "*", "int", ")", ")"]
)
parse_tree = parser.get_parse_tree(
parse_tree = example_parser.get_parse_tree(
["(", "int", "+", "(", "int", "*", "int", ")", ")"]
)
derivation = parse_tree.get_leftmost_derivation()
Expand Down Expand Up @@ -93,10 +95,10 @@ def test_get_parsing_tree(self, parser) -> None:
],
]

def test_no_parse_tree(self, parser) -> None:
def test_no_parse_tree(self, example_parser: RecursiveDecentParser) -> None:
with pytest.raises(NotParsableError):
parser.get_parse_tree([")"])
assert not (parser.is_parsable([")"]))
example_parser.get_parse_tree([")"])
assert not example_parser.is_parsable([")"])

def test_infinite_recursion(self) -> None:
cfg = CFG.from_text("""
Expand Down
2 changes: 1 addition & 1 deletion pyformlang/fcfg/tests/test_fcfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ def test_contains(self) -> None:
fcfg = FCFG(start_symbol=Variable("S"), productions=productions)
self._sub_tests_contains1(fcfg)

def _sub_tests_contains1(self, fcfg) -> None:
def _sub_tests_contains1(self, fcfg: FCFG) -> None:
assert fcfg.contains(["this", "flight", "serves"])
assert ["this", "flight", "serves"] in fcfg
assert fcfg.contains(["these", "flights", "serve"])
Expand Down
3 changes: 2 additions & 1 deletion pyformlang/regular_expression/tests/test_regex.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
from pyformlang.finite_automaton import EpsilonNFA
from pyformlang.finite_automaton import DeterministicFiniteAutomaton
from pyformlang.finite_automaton import State, Symbol, Epsilon
from pyformlang.finite_automaton.tests.test_deterministic_finite_automaton import (
from pyformlang.finite_automaton.tests.test_deterministic_finite_automaton \
import (
get_example0,
get_dfa_example,
perform_tests_example0,
Expand Down

1 comment on commit 2cd1679

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
pyformlang
   __init__.py90100% 
pyformlang/cfg
   __init__.py30100% 
   cfg.py46622 99%
   cfg_variable_converter.py6544 94%
   cyk_table.py790100% 
   formal_grammar.py6911 99%
   llone_parser.py16333 98%
   parse_tree.py6511 98%
   recursive_decent_parser.py6122 97%
   set_queue.py150100% 
   utils.py250100% 
pyformlang/cfg/tests
   __init__.py00100% 
   test_cfg.py62622 99%
   test_llone_parser.py11711 99%
   test_production.py210100% 
   test_recursive_decent_parser.py2511 96%
   test_terminal.py330100% 
   test_variable.py180100% 
pyformlang/fcfg
   __init__.py40100% 
   fcfg.py13111 99%
   feature_production.py250100% 
   feature_structure.py19133 98%
   state.py360100% 
pyformlang/fcfg/tests
   __init__.py00100% 
   test_fcfg.py1690100% 
   test_feature_structure.py1590100% 
pyformlang/finite_automaton
   __init__.py80100% 
   deterministic_finite_automaton.py18333 98%
   deterministic_transition_function.py2411 96%
   doubly_linked_list.py350100% 
   doubly_linked_node.py100100% 
   epsilon_nfa.py21011 99%
   finite_automaton.py23111 99%
   hopcroft_processing_list.py240100% 
   nondeterministic_finite_automaton.py400100% 
   nondeterministic_transition_function.py480100% 
   partition.py400100% 
   transition_function.py320100% 
   utils.py300100% 
pyformlang/finite_automaton/tests
   __init__.py00100% 
   test_deterministic_finite_automaton.py2960100% 
   test_deterministic_transition_function.py8955 94%
   test_epsilon.py130100% 
   test_epsilon_nfa.py5960100% 
   test_nondeterministic_finite_automaton.py1600100% 
   test_nondeterministic_transition_function.py790100% 
   test_state.py280100% 
   test_symbol.py290100% 
pyformlang/fst
   __init__.py20100% 
   fst.py18611 99%
   transition_function.py3833 92%
   utils.py250100% 
pyformlang/fst/tests
   __init__.py00100% 
   test_fst.py1910100% 
pyformlang/indexed_grammar
   __init__.py90100% 
   consumption_rule.py3522 94%
   duplication_rule.py320100% 
   end_rule.py3311 97%
   indexed_grammar.py27111 99%
   production_rule.py3511 97%
   reduced_rule.py290100% 
   rule_ordering.py730100% 
   rules.py770100% 
   utils.py410100% 
pyformlang/indexed_grammar/tests
   __init__.py00100% 
   test_indexed_grammar.py2500100% 
   test_rules.py350100% 
pyformlang/objects
   __init__.py50100% 
   base_epsilon.py1511 93%
   base_terminal.py70100% 
   formal_object.py240100% 
pyformlang/objects/cfg_objects
   __init__.py60100% 
   cfg_object.py50100% 
   epsilon.py30100% 
   production.py4111 98%
   terminal.py100100% 
   utils.py140100% 
   variable.py130100% 
pyformlang/objects/finite_automaton_objects
   __init__.py50100% 
   epsilon.py30100% 
   finite_automaton_object.py50100% 
   state.py70100% 
   symbol.py50100% 
   utils.py140100% 
pyformlang/objects/pda_objects
   __init__.py60100% 
   epsilon.py30100% 
   pda_object.py50100% 
   stack_symbol.py70100% 
   state.py70100% 
   symbol.py50100% 
   utils.py2111 95%
pyformlang/objects/regex_objects
   __init__.py20100% 
   regex_objects.py650100% 
   utils.py220100% 
pyformlang/pda
   __init__.py40100% 
   pda.py31722 99%
   transition_function.py3933 92%
   utils.py5322 96%
pyformlang/pda/tests
   __init__.py00100% 
   test_pda.py3020100% 
pyformlang/regular_expression
   __init__.py30100% 
   python_regex.py26966 98%
   regex.py2811414 95%
   regex_reader.py15944 97%
pyformlang/regular_expression/tests
   __init__.py00100% 
   test_python_regex.py2780100% 
   test_regex.py4110100% 
pyformlang/rsa
   __init__.py30100% 
   box.py512525 51%
   recursive_automaton.py7299 88%
pyformlang/rsa/tests
   __init__.py00100% 
   test_rsa.py370100% 
pyformlang/tests
   __init__.py00100% 
TOTAL874610999% 

Tests Skipped Failures Errors Time
310 0 💤 0 ❌ 0 🔥 8.176s ⏱️

Please sign in to comment.