예제 #1
0
    def failing_validation_cases(self) -> Sequence[NExArr[PrimAndExeExpectation[MatcherWTrace[MODEL],
                                                                                MatchingResult],
                                                          Arrangement]]:
        def cases_for(validation_case: NEA[ValidationAssertions, ValidationActual]
                      ) -> List[NExArr[PrimAndExeExpectation[MatcherWTrace[MODEL],
                                                             MatchingResult],
                                       Arrangement]]:
            validations = [validation_case.actual] + ([ValidationActual.passes()] * (len(self.operands) - 1))
            return [
                NExArr(
                    'validation={}, failing_symbol={}'.format(validation_case.name,
                                                              operand_name_validations[0]),
                    PrimAndExeExpectation.of_exe(
                        validation=validation_case.expected
                    ),
                    Arrangement(
                        symbols=SymbolContext.symbol_table_of_contexts([
                            self.helper.conf.mk_logic_type_context_of_sdv(
                                sym_and_validation[0],
                                self.helper.sdv_with_validation(sym_and_validation[1]))
                            for sym_and_validation in zip(operand_name_validations, validations)
                        ])
                    ),
                )
                for operand_name_validations in itertools.permutations(self.operands)
            ]

        return list(itertools.chain.from_iterable([
            cases_for(validation_case)
            for validation_case in failing_validation_cases()
        ]))
예제 #2
0
def failing_validation_cases(
    symbol_name: str = 'FILES_SOURCE_SYMBOL'
) -> Sequence[NameAndValue[ValidationCase]]:
    return [
        NameAndValue(case.name, ValidationCase(symbol_name, case.actual))
        for case in validation.failing_validation_cases()
    ]
예제 #3
0
def failing_validation_cases(
    symbol_name: str = 'string_transformer_symbol'
) -> Sequence[NameAndValue[ValidationCase]]:
    return [
        NameAndValue(case.name,
                     ValidationCase(symbol_name, case.expected, case.actual))
        for case in validation.failing_validation_cases()
    ]
예제 #4
0
def failing_validation_cases(
    symbol_name: str = 'file_matcher_symbol'
) -> Sequence[NameAndValue[ValidationCase]]:
    return [
        NameAndValue(case.name,
                     ValidationCase(case.expected, case.actual, symbol_name))
        for case in validation.failing_validation_cases()
    ]
예제 #5
0
def failing_validation_cases(symbol_name: str = 'INTEGER_MATCHER_SYMBOL',
                             ) -> Sequence[NameAndValue[ValidationCase]]:
    return [
        NameAndValue(
            case.name,
            ValidationCase(symbol_name,
                           case.actual)
        )
        for case in validation.failing_validation_cases()
    ]
예제 #6
0
 def failing_validation_cases(self, symbol_name: str
                              ) -> Sequence[NExArr[PrimAndExeExpectation[MatcherWTrace[MODEL],
                                                                         MatchingResult],
                                                   Arrangement]]:
     return [
         NExArr(
             validation_case.name,
             expected=PrimAndExeExpectation.of_exe(
                 validation=validation_case.expected,
             ),
             arrangement=Arrangement(
                 symbols=self.conf.mk_logic_type_context_of_sdv(
                     symbol_name,
                     self.sdv_with_validation(validation_case.actual)).symbol_table
             )
         )
         for validation_case in failing_validation_cases()
     ]
예제 #7
0
def failing_validation_cases() -> Sequence[NameAndValue[ValidationCase]]:
    return [
        NameAndValue(case.name, ValidationCase(case.expected, case.actual))
        for case in validation.failing_validation_cases()
    ]