Exemplo n.º 1
0
 def test_non_complex(self):
     # ARRANGE #
     model = [
         '1st\n',
         '2nd\n',
         '3rd\n',
     ]
     arguments = tr.filter_lm(
         lm_arg.Contents(sm_args.Equals(FileOrString.of_string('2nd'))))
     # ACT & ASSET #
     tr.check(
         self,
         Case(model, arguments, [], [model[1]], len(model)),
     )
Exemplo n.º 2
0
 def test_negation(self):
     # ARRANGE #
     model = [
         '1st\n',
         '2nd\n',
         '3rd\n',
     ]
     arguments = tr.filter_lm(
         arg_rend.negation(
             lm_arg.Contents(sm_args.Equals(
                 FileOrString.of_string('2nd')))))
     # ACT & ASSET #
     tr.check(
         self,
         Case(model, arguments, [], [model[0], model[2]], len(model)),
     )
Exemplo n.º 3
0
 def test_negation_of_disjunction(self):
     # ARRANGE #
     model = [
         '1st\n',
         '2nd\n',
         '3rd\n',
     ]
     neg_open_lower_limit = IntSymbol('lower_limit')
     arguments = tr.filter_lm(
         arg_rend.negation(
             arg_rend.within_paren(
                 arg_rend.disjunction([
                     lm_arg.Contents(
                         sm_args.Equals(FileOrString.of_string('2nd'))),
                     lm_arg.LineNum2(
                         im_args.comparison(
                             comparators.GT,
                             SymbolReferenceWReferenceSyntax(
                                 neg_open_lower_limit.name))),
                 ]))))
     model_and_args = ModelAndArguments(model, arguments)
     # ACT & ASSET #
     tr.check_cases__named(
         self,
         [
             model_and_args.case__n(
                 [neg_open_lower_limit.value(1)],
                 max_num_lines_from_iter=3,
                 expected_output_lines=[1],
             ),
             model_and_args.case__n(
                 [neg_open_lower_limit.value(2)],
                 max_num_lines_from_iter=3,
                 expected_output_lines=[1],
             ),
             model_and_args.case__n(
                 [neg_open_lower_limit.value(3)],
                 max_num_lines_from_iter=3,
                 expected_output_lines=[1, 3],
             ),
         ],
     )
Exemplo n.º 4
0
 def test_negation_of_conjunction(self):
     # ARRANGE #
     model = [
         '1st\n',
         '2nd\n',
         '3rd\n',
     ]
     arguments = tr.filter_lm(
         arg_rend.negation(
             arg_rend.within_paren(
                 arg_rend.conjunction([
                     lm_arg.Contents(
                         sm_args.Equals(FileOrString.of_string('2nd'))),
                     lm_arg.Contents(
                         sm_args.Equals(FileOrString.of_string('3rd'))),
                 ]))))
     # ACT & ASSET #
     tr.check(
         self,
         Case(model, arguments, [], model, len(model)),
     )
Exemplo n.º 5
0
 def test_finite_w_conjunction_of_integer_matchers(self):
     # ARRANGE #
     lower_limit = IntSymbol('lower_limit')
     upper_limit = IntSymbol('upper_limit')
     arguments = tr.filter_lm(
         lm_arg.LineNum2(
             arg_rend.within_paren(
                 arg_rend.conjunction([
                     im_args.comparison(
                         comparators.GTE,
                         SymbolReferenceWReferenceSyntax(lower_limit.name)),
                     im_args.comparison(
                         comparators.LTE,
                         SymbolReferenceWReferenceSyntax(upper_limit.name)),
                 ]))))
     m10 = ModelAndArguments(tr.model_lines(10), arguments)
     cases = self._finite_w_conjunction__cases(m10, lower_limit,
                                               upper_limit)
     # ACT & ASSET #
     tr.check_cases__named(
         self,
         cases,
     )