def test_dump_nlu_with_responses(): md = """## intent:greet - hey - howdy - hey there - hello - hi - good morning - good evening - dear sir ## intent:chitchat/ask_name - What's your name? - What can I call you? ## intent:chitchat/ask_weather - How's the weather? - Is it too hot outside? """ r = MarkdownReader() nlu_data = r.reads(md) dumped = nlu_data.nlu_as_markdown() assert dumped == md
def test_check_check_correct_entity_annotations(text: Text, warnings: int): reader = MarkdownReader() tokenizer = WhitespaceTokenizer() training_data = reader.reads(text) tokenizer.train(training_data) with pytest.warns(UserWarning) as record: EntityExtractor.check_correct_entity_annotations(training_data) assert len(record) == warnings assert all([excerpt in record[0].message.args[0]] for excerpt in ["Misaligned entity annotation in sentence"])
def test_markdown_order(): r = MarkdownReader() md = """## intent:z - i'm looking for a place to eat - i'm looking for a place in the [north](loc-direction) of town ## intent:a - intent a - also very important """ training_data = r.reads(md) assert training_data.nlu_as_markdown() == md
def test_markdown_entity_regex(example: Text, expected_num_entities: int): r = MarkdownReader() md = f""" ## intent:test-intent - {example} """ result = r.reads(md) assert len(result.training_examples) == 1 actual_example = result.training_examples[0] assert actual_example.data["intent"] == "test-intent" assert len(actual_example.data.get("entities", [])) == expected_num_entities
def test_markdown_unespace_tokens(): r = MarkdownReader() md = """## intent:test-intent - Hi \\t Can you help me?\\n I want to go to [Alexandria]{"entity": "city"} """ expected_num_entities = 1 training_data = r.reads(md) assert len(training_data.training_examples) == 1 actual_example = training_data.training_examples[0] assert actual_example.data["intent"] == "test-intent" assert len(actual_example.data.get("entities", [])) == expected_num_entities