def test_multiple_user_acts_mensa(): """ Tests exemplary whether a given sentence with multiple user acts is understood properly """ domain = MensaDomain() nlu = MensaNLU(domain) usr_utt = nlu.extract_user_acts( nlu, user_utterance='Hi, I want a dish with fish') assert 'user_acts' in usr_utt act_out = UserAct() act_out.type = UserActionType.Hello assert usr_utt['user_acts'][0] == act_out act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "fish" act_out.value = "true" assert usr_utt['user_acts'][1] == act_out
def test_multiple_user_acts_courses(): """ Tests exemplary whether a given sentence with multiple user acts is understood properly """ domain = JSONLookupDomain('ImsCourses') nlu = HandcraftedNLU(domain) usr_utt = nlu.extract_user_acts( nlu, user_utterance='Hi, I want a course that is related to linguistics') assert 'user_acts' in usr_utt act_out = UserAct() act_out.type = UserActionType.Hello assert usr_utt['user_acts'][0] == act_out act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "linguistics" act_out.value = "true" assert usr_utt['user_acts'][1] == act_out
def test_multiple_user_acts_lecturers(): """ Tests exemplary whether a given sentence with multiple user acts is understood properly """ domain = JSONLookupDomain('ImsLecturers') nlu = HandcraftedNLU(domain) usr_utt = nlu.extract_user_acts( nlu, user_utterance= 'Hi, I want a lecturer who is responsible for gender issues') assert 'user_acts' in usr_utt act_out = UserAct() act_out.type = UserActionType.Hello assert usr_utt['user_acts'][0] == act_out act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "position" act_out.value = "gender" assert usr_utt['user_acts'][1] == act_out
def test_request_superheroes_last_known_location(nlu): """ Tests exemplary whether a given user utterance, is recognized as belonging to a certain slot Args: nlu: NLU Object (given in conftest.py) """ act_out = UserAct() act_out.type = UserActionType.Request act_out.slot = "last_known_location" usr_utt = nlu.extract_user_acts(nlu, user_utterance='what is their location') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_request_time_slot(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot """ domain = JSONLookupDomain('ImsCourses') nlu = HandcraftedNLU(domain) act_out = UserAct() act_out.type = UserActionType.Request act_out.slot = "time_slot" usr_utt = nlu.extract_user_acts(nlu, user_utterance='at what time') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_request_mensa_pork(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot """ domain = MensaDomain() nlu = MensaNLU(domain) act_out = UserAct() act_out.type = UserActionType.Request act_out.slot = "pork" usr_utt = nlu.extract_user_acts(nlu, user_utterance='does it contain pork') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_mensa_type(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot-value pair """ domain = MensaDomain() nlu = MensaNLU(domain) act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "type" act_out.value = "starter" usr_utt = nlu.extract_user_acts(nlu, user_utterance='I want a starter') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_request_lecturers_phone(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot """ domain = JSONLookupDomain('ImsLecturers') nlu = HandcraftedNLU(domain) act_out = UserAct() act_out.type = UserActionType.Request act_out.slot = "phone" usr_utt = nlu.extract_user_acts( nlu, user_utterance='can you tell me the phone number') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_lecturers_name(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot-value pair """ domain = JSONLookupDomain('ImsLecturers') nlu = HandcraftedNLU(domain) act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "name" act_out.value = "apl. prof. dr. agatha christie" usr_utt = nlu.extract_user_acts(nlu, user_utterance='agatha christie') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_lecturers_department(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot-value pair """ domain = JSONLookupDomain('ImsLecturers') nlu = HandcraftedNLU(domain) act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "department" act_out.value = "external" usr_utt = nlu.extract_user_acts(nlu, user_utterance='informatics') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_bye(nlu): """ Tests whether a given user input is identified as general act: Bye Args: nlu: NLU Object (given in conftest.py) """ for input in ["bye", "goodbye", "that is all", "that's all"]: act_out = UserAct() act_out.type = UserActionType.Bye usr_utt = nlu.extract_user_acts(nlu, user_utterance=input) assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_hello(nlu): """ Tests whether a given user input is identified as general act: Hello Args: nlu: NlU Object (given in conftest.py) """ for input in ["hi", "hello", "howdy", "hey"]: act_out = UserAct() act_out.type = UserActionType.Hello usr_utt = nlu.extract_user_acts(nlu, user_utterance=input) assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_superheroes_loyalty(nlu): """ Tests exemplary whether a given user utterance, is recognized as belonging to a certain slot-value pair Args: nlu: NLU Object (given in conftest.py) """ act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "loyalty" act_out.value = "Avengers" usr_utt = nlu.extract_user_acts(nlu, user_utterance='they should be part of Avengers') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_courses_language(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot-value pair """ domain = JSONLookupDomain('ImsCourses') nlu = HandcraftedNLU(domain) act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "lang" act_out.value = "de" usr_utt = nlu.extract_user_acts(nlu, user_utterance='german') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_deny(nlu): """ Tests whether a given user input is identified as general act: Deny Args: nlu: NLU Object (given in conftest.py) """ for input in ["no", "not true", "wrong", "error", "n", "nope", "incorrect", "not correct"]: act_out = UserAct() act_out.type = UserActionType.Deny usr_utt = nlu.extract_user_acts(nlu, user_utterance=input) assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_thanks(nlu): """ Tests whether a given user input is identified as general act: Thanks Args: nlu: NLU Object (given in conftest.py) """ for input in ["Great", "Thanks", "thank you", "awesome", "thank you so much"]: act_out = UserAct() act_out.type = UserActionType.Thanks usr_utt = nlu.extract_user_acts(nlu, user_utterance=input) assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_affirm(nlu): """ Tests whether a given user input is identified as general act: Affirm Args: nlu: NLU Object (given in conftest.py) """ for input in ["yes", "Yeah", "Ok", "Sure", "right", "correct"]: act_out = UserAct() act_out.type = UserActionType.Affirm usr_utt = nlu.extract_user_acts(nlu, user_utterance=input) assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_superheroes_primary_uniform_color(nlu): """ Tests exemplary whether a given user utterance, is recognized as belonging to a certain slot-value pair Args: nlu: NLU Object (given in conftest.py) """ act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "primary_uniform_color" act_out.value = "Purple" usr_utt = nlu.extract_user_acts(nlu, user_utterance='the uniform should be Purple') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_inform_binary_mensa_vegan(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain binary slot-value pair """ domain = MensaDomain() nlu = MensaNLU(domain) act_out = UserAct() act_out.type = UserActionType.Inform act_out.slot = "vegan" act_out.value = "true" usr_utt = nlu.extract_user_acts(nlu, user_utterance='vegan, please') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_request_lecturers_office_hours(): """ Tests exemplary whether a given synonym, i.e. a user utterance, is recognized as belonging to a certain slot """ domain = JSONLookupDomain('ImsLecturers') nlu = HandcraftedNLU(domain) act_out = UserAct() act_out.type = UserActionType.Request act_out.slot = "office_hours" usr_utt = nlu.extract_user_acts( nlu, user_utterance='when are the consultation hours') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out
def test_reqalts(nlu): """ Tests whether a given user input is identified as general act: RequestAlternatives Args: nlu: NLU Object (given in conftest.py) """ for input in ["something else", "anything else", "different one", "another one", "don't want that", "other options"]: act_out = UserAct() act_out.type = UserActionType.RequestAlternatives usr_utt = nlu.extract_user_acts(nlu, user_utterance='something else') assert 'user_acts' in usr_utt assert usr_utt['user_acts'][0] == act_out