/
test_config.py
139 lines (105 loc) · 3.44 KB
/
test_config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
test_config
----------------------------------
Tests for config module.
"""
# pylint: disable=locally-disabled,redefined-outer-name
import os
from mindmeld.components._config import _expand_parser_config, get_classifier_config
APP_PATH = os.path.dirname(os.path.abspath(__file__))
BASIC_PARSER_CONFIG = {
"product": ["quantity", "size", "option"],
"store": ["location"],
"option": ["size"],
}
def test_list_parser_config():
"""Tests that a parser config with list specs is correctly expanded"""
config = {"option": ["size"]}
actual = _expand_parser_config(config)
expected = {
"option": {
"size": {
"left": True,
"right": True,
"min_instances": 0,
"max_instances": None,
"precedence": "left",
"linking_words": frozenset(),
}
}
}
assert actual == expected
def test_dict_parser_config():
"""Tests that a parser config with dict specs is correctly expanded"""
config = {"option": {"size": {}}}
actual = _expand_parser_config(config)
expected = {
"option": {
"size": {
"left": True,
"right": True,
"min_instances": 0,
"max_instances": None,
"precedence": "left",
"linking_words": frozenset(),
}
}
}
assert actual == expected
def test_dict_parser_config_2():
"""Tests that a parser config with dict specs is correctly expanded"""
config = {"option": {"size": {"left": False}}}
actual = _expand_parser_config(config)
expected = {
"option": {
"size": {
"left": False,
"right": True,
"min_instances": 0,
"max_instances": None,
"precedence": "left",
"linking_words": frozenset(),
}
}
}
assert actual == expected
def test_get_classifier_config():
"""Tests that the default config is returned when an app specified config doesn't exist."""
actual = get_classifier_config("domain", APP_PATH)["param_selection"]
expected = {
"type": "k-fold",
"k": 10,
"grid": {"fit_intercept": [True, False], "C": [10, 100, 1000, 10000, 100000]},
}
assert actual == expected
def test_get_classifier_config2():
"""Tests that the app specified config is returned over the default config."""
actual = get_classifier_config("intent", APP_PATH, domain="domain")[
"param_selection"
]
expected = {
"type": "k-fold",
"k": 5,
"grid": {
"fit_intercept": [True, False],
"C": [1, 20, 300],
"class_bias": [1, 0],
},
}
assert actual == expected
def test_get_classifier_config_func():
"""Tests that the app config provider is called."""
actual = get_classifier_config(
"entity", APP_PATH, domain="domain", intent="intent"
)["params"]
expected = {"penalty": "l2", "C": 100}
assert actual == expected
def test_get_classifier_config_func_error():
"""Tests robustness to exceptions raised by a config provider."""
actual = get_classifier_config("entity", APP_PATH, domain="domain", intent="error")[
"params"
]
expected = {"error": "intent", "penalty": "l2", "C": 100}
assert actual == expected