+ ], True)
+
+ assert word_table.get_special() \
+ == {(' KÖNIG BEI', 'könig bei', 'amenity', 'royal', 'near'),
+ (' KÖNIGE', 'könige', 'amenity', 'royal', None),
+ (' STREET', 'street', 'highway', 'primary', 'in')}
+
+
+def test_update_special_phrase_delete_all(analyzer, word_table):
+ word_table.add_special(' FOO', 'foo', 'amenity', 'prison', 'in')
+ word_table.add_special(' BAR', 'bar', 'highway', 'road', None)
+
+ assert word_table.count_special() == 2
+
+ with analyzer() as anl:
+ anl.update_special_phrases([], True)
+
+ assert word_table.count_special() == 0
+
+
+def test_update_special_phrases_no_replace(analyzer, word_table):
+ word_table.add_special(' FOO', 'foo', 'amenity', 'prison', 'in')
+ word_table.add_special(' BAR', 'bar', 'highway', 'road', None)
+
+ assert word_table.count_special() == 2
+
+ with analyzer() as anl:
+ anl.update_special_phrases([], False)
+
+ assert word_table.count_special() == 2
+
+
+def test_update_special_phrase_modify(analyzer, word_table):
+ word_table.add_special(' FOO', 'foo', 'amenity', 'prison', 'in')
+ word_table.add_special(' BAR', 'bar', 'highway', 'road', None)
+
+ assert word_table.count_special() == 2
+
+ with analyzer() as anl:
+ anl.update_special_phrases([
+ ('prison', 'amenity', 'prison', 'in'),
+ ('bar', 'highway', 'road', '-'),
+ ('garden', 'leisure', 'garden', 'near')
+ ], True)
+
+ assert word_table.get_special() \
+ == {(' PRISON', 'prison', 'amenity', 'prison', 'in'),
+ (' BAR', 'bar', 'highway', 'road', None),
+ (' GARDEN', 'garden', 'leisure', 'garden', 'near')}