def test_planning3(self): system = DialogueSystem(TestPlanning.domain2) system.get_settings().show_gui = False system.get_settings().horizon = 2 system.start_system() TestPlanning.inference.check_prob(system.get_state(), "a_m", "AskRepeat", 1.0)
def test_planning4(self): system = DialogueSystem(TestPlanning.domain3) system.get_settings().show_gui = False system.get_settings().horizon = 3 system.start_system() t1 = CategoricalTableBuilder("a_u") t1.add_row("Ask(Coffee)", 0.95) t1.add_row("Ask(Tea)", 0.02) system.add_content(t1.build()) TestPlanning.inference.check_prob(system.get_state(), "a_m", "Do(Coffee)", 1.0)
def test_3(self): system = DialogueSystem(TestRule2.domain) system.get_settings().show_gui = False system.detach_module(ForwardPlanner) eq_factor = EquivalenceDistribution.none_prob EquivalenceDistribution.none_prob = 0.1 old_prune_threshold = StatePruner.value_pruning_threshold StatePruner.value_pruning_threshold = 0.0 system.start_system() TestRule2.inference.check_util(system.get_state(), "a_m'", "Do(A)", 0.6) TestRule2.inference.check_util(system.get_state(), "a_m'", "Do(B)", -2.6) builder = CategoricalTableBuilder("a_u") builder.add_row("Ask(B)", 0.8) builder.add_row("None", 0.2) system.get_state().remove_nodes( system.get_state().get_action_node_ids()) system.get_state().remove_nodes( system.get_state().get_utility_node_ids()) system.add_content(builder.build()) TestRule2.inference.check_util(system.get_state(), "a_m'", "Do(A)", -4.35) TestRule2.inference.check_util(system.get_state(), "a_m'", "Do(B)", 2.357) EquivalenceDistribution.none_prob = eq_factor StatePruner.value_pruning_threshold = old_prune_threshold
def test_5(self): domain2 = XMLDomainReader.extract_domain(TestRule2.domain_file3) system2 = DialogueSystem(domain2) system2.detach_module(ForwardPlanner) system2.get_settings().show_gui = False system2.start_system() TestRule2.inference.check_util( system2.get_state(), ["a_ml'", "a_mg'", "a_md'"], Assignment([ Assignment("a_ml'", "SayYes"), Assignment("a_mg'", "Nod"), Assignment("a_md'", "None") ]), 2.4) TestRule2.inference.check_util( system2.get_state(), ["a_ml'", "a_mg'", "a_md'"], Assignment([ Assignment("a_ml'", "SayYes"), Assignment("a_mg'", "Nod"), Assignment("a_md'", "DanceAround") ]), -0.6) TestRule2.inference.check_util( system2.get_state(), ["a_ml'", "a_mg'", "a_md'"], Assignment([ Assignment("a_ml'", "SayYes"), Assignment("a_mg'", "None"), Assignment("a_md'", "None") ]), 1.6)
def test_state_copy(self): system = DialogueSystem(TestDialogueState.domain) system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.get_settings().show_gui = False system.start_system() initial_state = copy(system.get_state()) rule_id = "" for id in system.get_state().get_node("u_u2").get_output_node_ids(): if str(system.get_content(id)).find("+=HowAreYou") != -1: rule_id = id TestDialogueState.inference.check_prob( initial_state, rule_id, Effect.parse_effect("a_u2+=HowAreYou"), 0.9) TestDialogueState.inference.check_prob(initial_state, rule_id, Effect.parse_effect("Void"), 0.1) TestDialogueState.inference.check_prob(initial_state, "a_u2", "[HowAreYou]", 0.2) TestDialogueState.inference.check_prob(initial_state, "a_u2", "[Greet, HowAreYou]", 0.7) TestDialogueState.inference.check_prob(initial_state, "a_u2", "[]", 0.1) StatePruner.enable_reduction = True
def test_rule_and_params(self): domain = XMLDomainReader.extract_domain(TestRuleAndParams.domain_file) system = DialogueSystem(domain) system.get_settings().show_gui = False system.start_system() assert system.get_content("theta_moves").to_continuous().get_function().get_mean()[0] == pytest.approx(0.2, abs=0.02) assert system.get_content("a_u^p").get_prob("I want left") == pytest.approx(0.12, abs=0.03) assert len(system.get_state().get_chance_node("theta_moves").get_output_node_ids()) == 1 assert system.get_state().has_chance_node("movements") assert isinstance(system.get_state().get_chance_node("movements").get_distrib(), AnchoredRule) t = CategoricalTableBuilder("a_u") t.add_row("I want left", 0.8) t.add_row("I want forward", 0.1) system.add_content(t.build()) assert len(system.get_state().get_chance_node("theta_moves").get_output_node_ids()) == 0 assert not system.get_state().has_chance_node("movements") assert system.get_content("theta_moves").to_continuous().get_function().get_mean()[0] == pytest.approx(2.0 / 6.0, abs=0.07) system.add_content("a_m", "turning left") assert system.get_content("a_u^p").get_prob("I want left") == pytest.approx(0.23, abs=0.04) assert len(system.get_state().get_chance_node("theta_moves").get_output_node_ids()) == 1
def test_param_4(self): system = DialogueSystem(TestParameters.domain1) system.detach_module(ForwardPlanner) system.get_settings().show_gui = False system.start_system() rules = TestParameters.domain1.get_models()[1].get_rules() outputs = rules[0].get_output(Assignment("u_u", "my name is")) o = Effect(BasicEffect("u_u^p", "Pierre")) assert isinstance(outputs.get_parameter(o), SingleParameter) input = Assignment("theta_5", ValueFactory.create("[0.36, 0.24, 0.40]")) assert outputs.get_parameter(o).get_value(input) == pytest.approx(0.36, abs=0.01) system.get_state().remove_nodes(system.get_state().get_action_node_ids()) system.get_state().remove_nodes(system.get_state().get_utility_node_ids()) system.add_content("u_u", "my name is") system.get_state().remove_nodes(system.get_state().get_action_node_ids()) system.get_state().remove_nodes(system.get_state().get_utility_node_ids()) system.add_content("u_u", "Pierre") system.get_state().remove_nodes(system.get_state().get_action_node_ids()) system.get_state().remove_nodes(system.get_state().get_utility_node_ids()) system.add_content("u_u", "my name is") system.get_state().remove_nodes(system.get_state().get_action_node_ids()) system.get_state().remove_nodes(system.get_state().get_utility_node_ids()) system.add_content("u_u", "Pierre") assert system.get_state().query_prob("theta_5").to_continuous().get_function().get_mean()[0] == pytest.approx(0.3, abs=0.12)
def test_IS2013(self): domain = XMLDomainReader.extract_domain(TestLearning.domain_file) params = XMLStateReader.extract_bayesian_network(TestLearning.parameters_file, "parameters") domain.set_parameters(params) system = DialogueSystem(domain) system.get_settings().show_gui = False system.detach_module(ForwardPlanner) Settings.nr_samples = Settings.nr_samples * 3 Settings.max_sampling_time = Settings.max_sampling_time * 10 system.start_system() init_mean = system.get_content("theta_1").to_continuous().get_function().get_mean() builder = CategoricalTableBuilder("a_u") builder.add_row("Move(Left)", 1.0) builder.add_row("Move(Right)", 0.0) builder.add_row("None", 0.0) system.add_content(builder.build()) system.get_state().remove_nodes(system.get_state().get_utility_node_ids()) system.get_state().remove_nodes(system.get_state().get_action_node_ids()) after_mean = system.get_content("theta_1").to_continuous().get_function().get_mean() assert after_mean[0] - init_mean[0] > 0.04 assert after_mean[1] - init_mean[1] < 0.04 assert after_mean[2] - init_mean[2] < 0.04 assert after_mean[3] - init_mean[3] < 0.04 assert after_mean[4] - init_mean[4] < 0.04 assert after_mean[5] - init_mean[5] < 0.04 assert after_mean[6] - init_mean[6] < 0.04 assert after_mean[7] - init_mean[7] < 0.04 Settings.nr_samples = int(Settings.nr_samples / 3) Settings.max_sampling_time = Settings.max_sampling_time / 10
def test_priority(self): system = DialogueSystem(XMLDomainReader.extract_domain(TestRule3.domain_file)) system.get_settings().show_gui = False system.start_system() assert system.get_content("a_u").get_prob("Opening") == pytest.approx(0.8, abs=0.01) assert system.get_content("a_u").get_prob("Nothing") == pytest.approx(0.1, abs=0.01) assert system.get_content("a_u").get_prob("start") == pytest.approx(0.0, abs=0.01) assert not system.get_content("a_u").to_discrete().has_prob(ValueFactory.create("start"))
def test_template_quick(self): domain = XMLDomainReader.extract_domain("test/data/quicktest.xml") system = DialogueSystem(domain) system.get_settings().show_gui = False system.start_system() assert system.get_content("caught").get_prob(False) == pytest.approx(1.0, abs=0.01) assert system.get_content("caught2").get_prob(True) == pytest.approx(1.0, abs=0.01)
def test_planning2(self): system = DialogueSystem(TestPlanning.domain2) system.get_settings().show_gui = False system.start_system() assert len(system.get_state().get_node_ids()) == 2 assert not system.get_state().has_chance_node("a_m")
def test_param_6(self): system = DialogueSystem(XMLDomainReader.extract_domain("test/data/testparams3.xml")) system.get_settings().show_gui = False system.start_system() table = system.get_content("b").to_discrete() assert len(table) == 6 assert table.get_prob("something else") == pytest.approx(0.45, abs=0.05) assert table.get_prob("value: first with type 1") == pytest.approx(0.175, abs=0.05) assert table.get_prob("value: second with type 2") == pytest.approx(0.05, abs=0.05)
def test_nlu(self): system = DialogueSystem(TestRefResolution.domain) system.get_settings().show_gui = False system.start_system() system.add_user_input("take the red box") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=box, def=def, nb=sg, attr=red]") system.add_user_input("take the big yellow box") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=box, def=def, nb=sg, attr=big, attr=yellow]") system.add_user_input("take the big and yellow box") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=box, def=def, nb=sg, attr=big, attr=yellow]") system.add_user_input("take the big box on your left") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[rel=left(agent), type=box, def=def, nb=sg, attr=big]") system.add_user_input("take the big box on the left") assert system.get_content("properties(ref_main)").to_discrete().get_prob("[rel=left(agent), type=box, def=def, nb=sg, attr=big]") == pytest.approx(0.5, abs=0.01) assert system.get_content("properties(ref_main)").to_discrete().get_prob("[rel=left(spk), type=box, def=def, nb=sg, attr=big]") == pytest.approx(0.5, abs=0.01) system.add_user_input("take one box now") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[def=indef, nb=sg, type=box]") system.add_user_input("take the small and ugly box ") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=box, def=def, nb=sg, attr=small, attr=ugly]") system.add_user_input("now please pick up the book that is behind you") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=book, def=def, nb=sg, rel=behind(ref_behind)]") assert system.get_content("ref_behind").get_best() == ValueFactory.create("you") assert system.get_content("ref_main").get_best() == ValueFactory.create("the book") system.add_user_input("could you take the red ball on the desk") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=ball, attr=red, rel=on(ref_on), def=def, nb=sg]") assert system.get_content("ref_main").get_best() == ValueFactory.create("the red ball") assert system.get_content("ref_on").get_best() == ValueFactory.create("the desk") system.add_user_input("could you take the red ball next to the window") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=ball, attr=red, rel=next to(ref_next to), def=def, nb=sg]") assert system.get_content("ref_main").get_best() == ValueFactory.create("the red ball") assert system.get_content("ref_next to").get_best() == ValueFactory.create("the window") system.add_user_input("could you take the big red ball near the window to your left") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=ball, attr=red, attr=big, rel=near(ref_near), def=def, nb=sg]") assert system.get_content("ref_main").get_best() == ValueFactory.create("the big red ball") assert system.get_content("properties(ref_near)").get_best() == ValueFactory.create("[type=window, rel=left(agent), def=def, nb=sg]") assert system.get_content("ref_near").get_best() == ValueFactory.create("the window") system.add_user_input("could you take the big red ball near the window and to your left") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=ball, attr=red, attr=big, rel=left(agent), rel=near(ref_near), def=def, nb=sg]") assert system.get_content("ref_main").get_best() == ValueFactory.create("the big red ball") assert system.get_content("properties(ref_near)").get_best() == ValueFactory.create("[type=window, def=def, nb=sg]") assert system.get_content("ref_near").get_best() == ValueFactory.create("the window") system.add_user_input("and now pick up the books that are on top of the shelf") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=book, rel=top(ref_top), def=def, nb=pl]") assert system.get_content("properties(ref_top)").get_best() == ValueFactory.create("[type=shelf,def=def, nb=sg]") system.add_user_input("and now pick up one book which is big") assert system.get_content("properties(ref_main)").get_best() == ValueFactory.create("[type=book,def=indef, attr=big, nb=sg]") nbest = dict() nbest["and take the red book"] = 0.5 nbest["and take the wred hook"] = 0.1 system.add_user_input(nbest) assert system.get_content("properties(ref_main)").get_prob("[type=book,attr=red,def=def,nb=sg]") == pytest.approx(0.5, abs=0.01) assert system.get_content("properties(ref_main)").get_prob("[type=hook,attr=wred,def=def,nb=sg]") == pytest.approx(0.1, abs=0.01)
def test_incondition(self): domain = XMLDomainReader.extract_domain(TestRule3.incondition_file) system = DialogueSystem(domain) system.get_settings().show_gui = False system.start_system() assert system.get_content("out").get_prob("val1 is in [val1, val2]") + system.get_content("out").get_prob("val1 is in [val2, val1]") == pytest.approx(0.56, abs=0.01) assert system.get_content("out2").get_prob("this is a string is matched") == pytest.approx(0.5, abs=0.01)
def test_underspec(self): domain = XMLDomainReader.extract_domain("test/data/underspectest.xml") system = DialogueSystem(domain) system.get_settings().show_gui = False StatePruner.enable_reduction = False system.start_system() assert system.get_content("match").get_prob("obj_1") == pytest.approx(0.66, abs=0.05) assert system.get_content("match").get_prob("obj_3") == pytest.approx(0.307, abs=0.05) assert len(system.get_state().get_chance_node_ids()) == 14 StatePruner.enable_reduction = True
def test_6(self): domain2 = XMLDomainReader.extract_domain(TestRule2.domain_file4) system2 = DialogueSystem(domain2) system2.detach_module(ForwardPlanner) system2.get_settings().show_gui = False system2.start_system() TestRule2.inference.check_prob(system2.get_state(), "A", ValueFactory.create("[a1,a2]"), 1.0) TestRule2.inference.check_prob(system2.get_state(), "a_u", "Request(ball)", 0.5)
def test_reward_learner(self): system = DialogueSystem() Settings.nr_samples = Settings.nr_samples * 2 out_break = False for k in range(3): if out_break is True: break if k > 0: # log message pass system = DialogueSystem( XMLDomainReader.extract_domain(TestSimulator.main_domain2)) sim_domain3 = XMLDomainReader.extract_domain( TestSimulator.sim_domain2) sim = Simulator(system, sim_domain3) system.attach_module(sim) # NEED GUI system.get_settings().show_gui = False system.start_system() for i in range(20): if system.get_module(Simulator) is None: break sleep(0.1) try: self.check_condition2(system) system.detach_module(Simulator) out_break = True break except: assert False system.detach_module(Simulator) self.check_condition2(system) system.detach_module(Simulator) system.pause(True) theta_correct = system.get_content( "theta_correct").to_continuous().get_function() theta_incorrect = system.get_content( "theta_incorrect").to_continuous().get_function() theta_repeat = system.get_content( "theta_repeat").to_continuous().get_function() self.log.debug("theta_correct %s" % theta_correct) self.log.debug("theta_incorrect %s" % theta_incorrect) self.log.debug("theta_repeat %s" % theta_repeat) Settings.nr_samples = Settings.nr_samples / 2.0
def test_simulator(self): system = DialogueSystem() nr_samples = Settings.nr_samples Settings.nr_samples = nr_samples / 5.0 out_break = False for k in range(3): if out_break: break system = DialogueSystem( XMLDomainReader.extract_domain(TestSimulator.main_domain)) if k > 0: self.log.warning("restarting the simulator...") pass system.get_domain().get_models().pop(0) system.get_domain().get_models().pop(0) system.get_domain().get_models().pop(0) sim_domain2 = XMLDomainReader.extract_domain( TestSimulator.sim_domain) sim = Simulator(system, sim_domain2) system.attach_module(sim) # NEED GUI system.get_settings().show_gui = False system.start_system() for i in range(40): if system.get_module(Simulator) is None: break sleep(0.2) # NEED DialogueRecorder str = system.get_module(DialogueRecorder).get_record() try: self.check_condition(str) system.detach_module(Simulator) out_break = True break except: pass if not out_break: system.detach_module(Simulator) # NEED DialogueRecorder self.check_condition(system.get_module(DialogueRecorder).get_record()) system.detach_module(Simulator) system.pause(True) Settings.nr_samples = nr_samples * 5
def test_1(self): system = DialogueSystem(TestRule1.domain) system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.get_settings().show_gui = False system.start_system() TestRule1.inference.check_prob(system.get_state(), "a_u", "Greeting", 0.8) TestRule1.inference.check_prob(system.get_state(), "a_u", "None", 0.2) StatePruner.enable_reduction = True
def test_planning(self): system = DialogueSystem(TestPlanning.domain) system.get_settings().show_gui = False system.start_system() assert len(system.get_state().get_nodes()) == 3 assert len(system.get_state().get_chance_nodes()) == 3 assert len(system.get_state().get_evidence().get_variables()) == 0 TestPlanning.inference.check_prob(system.get_state(), "a_m3", "Do", 1.0) TestPlanning.inference.check_prob(system.get_state(), "obj(a_m3)", "A", 1.0)
def test_param1(self): domain = XMLDomainReader.extract_domain(TestDemo.domain_file) params = XMLStateReader.extract_bayesian_network( TestDemo.param_file, "parameters") domain.set_parameters(params) system = DialogueSystem(domain) system.get_settings().show_gui = False system.detach_module(ForwardPlanner) system.get_settings().show_gui = False system.start_system() system.add_content("a_m", "AskRepeat") t = CategoricalTableBuilder("a_u") t.add_row("DoA", 0.7) t.add_row("a_u", 0.2) t.add_row("a_u", 0.1) system.add_content(t.build()) for i in range(3000): print((system.get_state().get_chance_node("theta").sample() ).get_array()[0])
def test_7(self): system = DialogueSystem(TestRule1.domain) system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.get_settings().show_gui = False system.start_system() TestRule1.inference.check_prob(system.get_state(), "a_u2", "[Greet, HowAreYou]", 0.7) TestRule1.inference.check_prob(system.get_state(), "a_u2", "[]", 0.1) TestRule1.inference.check_prob(system.get_state(), "a_u2", "[HowAreYou]", 0.2) StatePruner.enable_reduction = True
def test_4(self): system = DialogueSystem(TestRule1.domain) system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.get_settings().show_gui = False system.start_system() TestRule1.inference.check_prob(system.get_state(), "o", "and we have var1=value2", 0.3) TestRule1.inference.check_prob(system.get_state(), "o", "and we have localvar=value1", 0.2) TestRule1.inference.check_prob(system.get_state(), "o", "and we have localvar=value3", 0.28) StatePruner.enable_reduction = True
def test_5(self): system = DialogueSystem(TestRule1.domain) system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.get_settings().show_gui = False system.start_system() TestRule1.inference.check_prob(system.get_state(), "o2", "here is value1", 0.35) TestRule1.inference.check_prob(system.get_state(), "o2", "and value2 is over there", 0.07) TestRule1.inference.check_prob(system.get_state(), "o2", "value3, finally", 0.28) StatePruner.enable_reduction = True
def test_1(self): system = DialogueSystem(TestRule2.domain) eq_factor = EquivalenceDistribution.none_prob EquivalenceDistribution.none_prob = 0.1 old_prune_threshold = StatePruner.value_pruning_threshold StatePruner.value_pruning_threshold = 0.0 system.get_settings().show_gui = False system.detach_module(ForwardPlanner) system.start_system() TestRule2.inference.check_prob(system.get_state(), "a_u^p", "Ask(A)", 0.63) TestRule2.inference.check_prob(system.get_state(), "a_u^p", "Ask(B)", 0.27) TestRule2.inference.check_prob(system.get_state(), "a_u^p", "None", 0.1) builder = CategoricalTableBuilder("a_u") builder.add_row("Ask(B)", 0.8) builder.add_row("None", 0.2) system.get_state().remove_nodes( system.get_state().get_action_node_ids()) system.get_state().remove_nodes( system.get_state().get_utility_node_ids()) system.add_content(builder.build()) TestRule2.inference.check_prob(system.get_state(), "i_u", "Want(A)", 0.090) TestRule2.inference.check_prob(system.get_state(), "i_u", "Want(B)", 0.91) TestRule2.inference.check_prob(system.get_state(), "a_u^p", "Ask(B)", 0.91 * 0.9) TestRule2.inference.check_prob(system.get_state(), "a_u^p", "Ask(A)", 0.09 * 0.9) TestRule2.inference.check_prob(system.get_state(), "a_u^p", "None", 0.1) TestRule2.inference.check_prob(system.get_state(), "a_u", "Ask(B)", 0.918) TestRule2.inference.check_prob(system.get_state(), "a_u", "None", 0.081) EquivalenceDistribution.none_prob = eq_factor StatePruner.value_pruning_threshold = old_prune_threshold
def test_1(self): domain = XMLDomainReader.extract_domain(TestRule3.test1_domain_file) inference = InferenceChecks() inference.exact_threshold = 0.06 system = DialogueSystem(domain) system.get_settings().show_gui = False system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.start_system() inference.check_prob(system.get_state(), "found", "A", 0.7) inference.check_prob(system.get_state(), "found2", "D", 0.3) inference.check_prob(system.get_state(), "found2", "C", 0.5) StatePruner.enable_reduction = True
def test_state_copy2(self): InferenceChecks.exact_threshold = 0.08 system = DialogueSystem(TestDialogueState.domain) system.get_settings().show_gui = False system.detach_module(ForwardPlanner) system.start_system() initial_state = copy(system.get_state()) TestDialogueState.inference.check_prob(initial_state, "a_u2", "[HowAreYou]", 0.2) TestDialogueState.inference.check_prob(initial_state, "a_u2", "[Greet, HowAreYou]", 0.7) TestDialogueState.inference.check_prob(initial_state, "a_u2", "[]", 0.1)
def test_3(self): InferenceChecks.exact_threshold = 0.06 system = DialogueSystem(TestRule1.domain) system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.get_settings().show_gui = False system.start_system() TestRule1.inference.check_prob(system.get_state(), "direction", "straight", 0.79) TestRule1.inference.check_prob(system.get_state(), "direction", "left", 0.20) TestRule1.inference.check_prob(system.get_state(), "direction", "right", 0.01) StatePruner.enable_reduction = True
def test_2(self): inference = InferenceChecks() domain = XMLDomainReader.extract_domain(TestRule3.test2_domain_file) system = DialogueSystem(domain) system.get_settings().show_gui = False system.detach_module(ForwardPlanner) StatePruner.enable_reduction = False system.start_system() inference.check_prob(system.get_state(), "graspable(obj1)", "True", 0.81) inference.check_prob(system.get_state(), "graspable(obj2)", "True", 0.16) inference.check_util(system.get_state(), "a_m'", "grasp(obj1)", 0.592) StatePruner.enable_reduction = True
def test_param_2(self): InferenceChecks.exact_threshold = 0.1 system = DialogueSystem(TestParameters.domain1) system.detach_module(ForwardPlanner) system.get_settings().show_gui = False assert system.get_state().has_chance_node("theta_3") TestParameters.inference.check_cdf(system.get_state(), "theta_3", 0.6, 0.0) TestParameters.inference.check_cdf(system.get_state(), "theta_3", 0.8, 0.5) TestParameters.inference.check_cdf(system.get_state(), "theta_3", 0.95, 1.0) system.start_system() system.add_content("u_u", "brilliant") distrib = system.get_content("a_u") assert distrib.get_prob("approval") == pytest.approx(0.8, abs=0.05)