示例#1
0
 def test_facts(self):
     for n in (1, 2, 3):
         yield Fact(something=n)
示例#2
0
 class Test(KnowledgeEngine):
     @Rule(Fact(a=W('X'), b=W('X')))
     def rule1(self, X):
         nonlocal result
         result.append(X)
示例#3
0
def test_prepare_rule__rule_starting_with_not():
    from pyknow import Rule, InitialFact, NOT, Fact

    rule = Rule(NOT(Fact(1)))(lambda: None)

    assert list(utils.prepare_rule(rule)) == [InitialFact(), NOT(Fact(1))]
示例#4
0
 class KE(KnowledgeEngine):
     @Rule(EXISTS(OR(Fact(), Fact())))
     def r1(self):
         pass
示例#5
0
 class KE(KnowledgeEngine):
     @Rule(Fact(1), OR(Fact('a'), Fact('b')), OR(Fact('x'), Fact('y')))
     def r1(self):
         pass
示例#6
0
 class Test(KnowledgeEngine):
     @Rule(Fact("a" << W()), Fact("b" << W()), TEST(lambda a, b: a > b),
           Fact("c" << W()), TEST(lambda b, c: b > c))
     def is_greater(self, a, b, c):
         nonlocal executed
         executed[(a, b, c)] += 1
示例#7
0
 class Test(KnowledgeEngine):
     @Rule(EXISTS(Fact()))
     def any_fact_once(self):
         nonlocal executed
         executed += 1
示例#8
0
 def start(self, being, number):  # noqa
     """Define facts."""
     yield Fact(being=being)
     yield Fact(number=number)
     yield Fact(touched=being.touched)
示例#9
0
 def mygenerator():
     yield Fact()
 class TestRule(KnowledgeEngine):
     @Rule(AS.fact << Fact(MATCH.value))
     def myrule(self):
         nonlocal called
         called = True
 class TestRule(KnowledgeEngine):
     @Rule(Fact(MATCH.value1, MATCH.value2))
     def myrule(self, value1=None):
         assert value1 == "SOMETHING1"
         nonlocal called
         called = True
示例#12
0
    class KE(KnowledgeEngine):
        result = False

        @Rule(Fact(operator))
        def istrue(self):
            self.result = True
示例#13
0
def test_extract_facts():
    from pyknow import Rule, NOT, AND, OR, Fact

    rule = Rule(OR(AND(Fact(1), NOT(Fact(2))), Fact(3)))

    assert utils.extract_facts(rule) == {Fact(1), Fact(2), Fact(3)}
示例#14
0
def test_prepare_rule__and_inside_rule():
    from pyknow import Rule, AND, Fact

    rule = Rule(AND(Fact(1), Fact(2)))(lambda: None)

    assert list(utils.prepare_rule(rule)) == [Fact(1), Fact(2)]
示例#15
0
 def some_facts(self):
     yield Fact(other=1)
     yield Fact(other=2)
示例#16
0
 def mygenerator():
     return Fact()
示例#17
0
 class Test(KnowledgeEngine):
     """ Test KE """
     @Rule(OR(Fact(something=L(1)), Fact(something=L(2))))
     def rule1(self):
         """ First rule, something=1 and something=2"""
         pass
示例#18
0
 def mygenerator(self):
     yield Fact()
示例#19
0
 class Test(KnowledgeEngine):
     @Rule(Fact("a" << W()), TEST(lambda a: isinstance(a, int)))
     def is_number(self, a):
         nonlocal executed
         executed += 1
示例#20
0
    def on_wgt_btn_calculate_press(instance, value):
        engine = SeguroDeVida()
        engine.reset()

        engine.declare(Fact(cpf=instance.wgt_cpf_negativado.active))
        engine.declare(
            Fact(esportesRadicais=instance.wgt_radical_sports.active))
        engine.declare(Fact(pilotoCorrida=instance.wgt_racing_driver.active))
        engine.declare(Fact(drogas=instance.wgt_use_drugs.active))
        engine.declare(
            Fact(doencasGraves=instance.wgt_serious_diseases.active))
        engine.declare(
            Fact(doencasGraves=instance.wgt_serious_diseases.active))
        engine.declare(
            Fact(acompanhamentoMedico=instance.wgt_medical_monitoring.active))
        engine.declare(
            Fact(acompanhamento=instance.wgt_medical_monitoring.active))
        engine.declare(Fact(indenizacao=instance.wgt_invalidity.active))
        engine.declare(Fact(fuma=instance.wgt_smoker.active))
        engine.declare(Fact(bebe=instance.wgt_alcohol.active))
        engine.declare(Fact(cep=instance.wgt_dangerous_neighbour.active))
        engine.declare(Fact(aeronaves=instance.wgt_airline_crew.active))
        engine.declare(Fact(idade=convertStrToFloat(instance.wgt_age.text)))
        engine.declare(Fact(diabetes=instance.wgt_diabetes.active))
        engine.declare(Fact(profissao=instance.wgt_profession.text))
        engine.declare(Fact(sedentario_=instance.wgt_sports_practice.active))
        engine.declare(
            Fact(serasa=convertStrToFloat(instance.wgt_serasa_score.text)))
        engine.declare(
            Fact(quantosFilhos=convertStrToInt(instance.wgt_children.text)))
        engine.declare(Fact(casado=instance.wgt_marital_status.text))
        engine.declare(
            Fact(viagens=convertStrToInt(instance.wgt_travels.text)))
        engine.declare(Fact(neuro=instance.wgt_neurological_disease.active))
        engine.declare(Fact(cirurgia=instance.wgt_surgery.active))
        engine.declare(Fact(marcapasso=instance.wgt_pacemaker.active))
        engine.declare(
            Fact(problemaCardiaco=instance.wgt_heart_disease.active))
        engine.declare(Fact(cancerNaFamilia=instance.wgt_cancer.active))
        engine.declare(Fact(sangue=instance.wgt_blood_type.text))
        engine.declare(Fact(celiaco_=instance.wgt_celia.active))
        engine.declare(
            Fact(hipolactasia_=instance.wgt_lactose_intolerance.active))
        engine.declare(Fact(terminal=instance.wgt_terminal_disease.active))
        engine.declare(Fact(autoImune=instance.wgt_auto_immune_disease.active))
        engine.declare(Fact(vacinaPolio=instance.wgt_vaccine_polio.active))
        engine.declare(
            Fact(vacinaMeningite=instance.wgt_vaccine_meningite.active))
        engine.declare(Fact(viagemAfrica=instance.wgt_africa_travel.active))
        engine.declare(Fact(viagemGuerra=instance.wgt_war_travel.active))
        engine.declare(Fact(desempregado_=instance.wgt_unemployed.active))
        engine.declare(Fact(esportesTiro=instance.wgt_shoot_practice.active))
        engine.declare(Fact(transplante=instance.wgt_transplant.active))

        engine.declare(Fact(abs_ou_air=instance.wgt_airbags.active))
        engine.declare(Fact(contraTerceiros=instance.wgt_third.active))
        engine.declare(Fact(franquia_reduzida=instance.wgt_reduced.active))
        engine.declare(Fact(roubo=instance.wgt_theft.active))
        engine.declare(Fact(incendio=instance.wgt_fire.active))
        engine.declare(
            Fact(idadeCarro=convertStrToInt(instance.wgt_year.text)))
        # engine.declare(Fact(um_condutor=<to_be_defined>))
        engine.declare(Fact(garagem=instance.wgt_garage.active))
        engine.declare(Fact(carro_reserva=instance.wgt_backup_car.active))
        engine.declare(
            Fact(acidentesPessoais=instance.wgt_personal_passenger.active))
        engine.declare(Fact(condutorAcidente=instance.wgt_accident.active))
        engine.declare(Fact(indenizacaoFipe=instance.wgt_extra_fipe.active))
        engine.declare(Fact(sexo_=instance.wgt_gender.text))
        engine.declare(Fact(possuiRastreador=instance.wgt_tracker.active))
        engine.declare(
            Fact(
                indice_roubo=convertStrToFloat(instance.wgt_theft_index.text)))
        engine.declare(Fact(veiculo_viagens=instance.wgt_for_travel.active))
        engine.declare(Fact(cobertura_=instance.wgt_car_coverage_type.text))
        engine.declare(Fact(brand=instance.wgt_brand.text))
        engine.declare(
            Fact(numero_motoristas=convertStrToInt(instance.wgt_drivers.text)))

        engine.declare(Fact(areaRiscoNatural=instance.wgt_natural_risk.active))
        engine.declare(
            Fact(emConstrucao=instance.wgt_under_construction.active))
        engine.declare(
            Fact(sistemaMonitoramento=instance.wgt_medical_monitoring.active))
        engine.declare(Fact(tombado=instance.wgt_historical.active))
        engine.declare(Fact(moradiaColetiva=instance.wgt_shared.active))
        engine.declare(Fact(moradia=instance.wgt_residence_type.text))
        engine.declare(
            Fact(utilizaMateriaisCombustiveis=instance.
                 wgt_combustible_materials.active))
        engine.declare(
            Fact(numeroAparelhosEletronicos_=convertStrToInt(
                instance.wgt_number_of_electronics.text)))
        engine.declare(
            Fact(valor_Dos_Bens=convertStrToFloat(
                instance.wgt_value_of_goods.text)))
        engine.declare(Fact(cofre=instance.wgt_has_safe_box.active))
        engine.declare(
            Fact(servicosEmergenciais=instance.wgt_needs_emergencial_services.
                 active))
        engine.declare(
            Fact(jaHouveSinistro=instance.wgt_insurance_claim.active))

        engine.declare(Fact(cancer_=instance.wgt_cancer.active))
        engine.declare(Fact(infarto_=instance.wgt_heart_attack.active))
        engine.declare(Fact(AVC=instance.wgt_stroke.active))
        engine.declare(Fact(deficiencia=instance.wgt_deficiencies.active))
        # engine.declare(Fact(obeso=<to_be_defined>))
        engine.declare(Fact(cardiopatia=instance.wgt_heart_congenital.active))
        engine.declare(Fact(artrose=instance.wgt_osteoarthritis.active))
        engine.declare(
            Fact(medicamentoControlado=instance.wgt_controlled_medication.
                 active))
        engine.declare(Fact(dst=instance.wgt_sexual_disease.active))
        engine.declare(Fact(hepatite=instance.wgt_hepatitis.active))
        engine.declare(Fact(gravida_=instance.wgt_pregnant.active))
        engine.declare(Fact(planoDeSaude=instance.wgt_health_plan.active))

        engine.run()

        print(engine.facts)

        if (engine.seguroNaoPossivel == True):
            popup = Popup(
                title='Resultado da Análise',
                content=Label(
                    text=
                    'Caro cliente. De acordo com nossos critérios internos,\nnão é possível realizarmos seu seguro'
                ),
                size_hint=(None, None),
                size=(400, 200))
        else:
            popup = Popup(
                title='Resultado da Análise',
                content=Label(text='Caro cliente. Seu score de risco é de ' +
                              str(engine.insuranceScore)),
                size_hint=(None, None),
                size=(400, 200))

        popup.open()
示例#21
0
 class KE(KnowledgeEngine):
     @Rule('myfact' << Fact())
     def r1(self, myfact):
         nonlocal executed
         executed = myfact
示例#22
0
 class Test(KnowledgeEngine):
     @Rule(Fact(a=1), Fact(b=1), Fact(c=1))
     def test(self):
         pass
示例#23
0
 class KE(KnowledgeEngine):
     @Rule(Fact(x='x' << W()), NOT(Fact(y='x' << W())))
     def r1(self):
         pass
示例#24
0
 def some_facts(self):
     yield Fact(foo=1)
示例#25
0
 class Test(KnowledgeEngine):
     @Rule(~Fact(a=1) | ~Fact(a=2) | ~Fact(a=3))
     def test(self):
         nonlocal executions
         executions += 1
示例#26
0
 def tested_deffacts(self):
     for i in to_declare:
         yield Fact(something=i)
示例#27
0
 def test_deffacts(self):
     yield Fact(a=1)
示例#28
0
文件: test_dnf.py 项目: Samirsrc/MABY
def test_multiple_or_inside_rule():
    from pyknow import Fact, OR, Rule, AND
    from pyknow.matchers.rete.dnf import dnf

    input_ = Rule(Fact(a=1),
                  OR(Fact(b=1),
                     Fact(b=2)),
                  OR(Fact(c=1),
                     Fact(c=2)))
    output_ = Rule(OR(AND(Fact(a=1), Fact(b=1), Fact(c=1)),
                      AND(Fact(a=1), Fact(b=1), Fact(c=2)),
                      AND(Fact(a=1), Fact(b=2), Fact(c=1)),
                      AND(Fact(a=1), Fact(b=2), Fact(c=2))))

    result = dnf(input_)
    assert result == output_