def test_filter_context_4(self): db = LatexContextDb() db.set_unknown_macro_spec(MacroSpec('<macro unknown>')) db.set_unknown_environment_spec(EnvironmentSpec('<env unknown>')) db.add_context_category('cat1', [ std_macro('aaa', '{'), std_macro('bbb', '[{[') ], [ std_environment('eaaa', '{'), std_environment('ebbb', '[{[') ]) db.add_context_category('cat2', [ std_macro('aaa', '[{'), std_macro('ccc', None) ], [ std_environment('eaaa', '[{'), std_environment('eccc', None) ]) db.add_context_category('cat3', [ std_macro('ccc', '*{'), std_macro('ddd', '{{[') ], [ std_environment('eccc', '*{'), std_environment('eddd', '{{[') ], prepend=True) db2 = db.filter_context(keep_categories=['cat1', 'cat3'], exclude_categories=['cat3'], keep_which=['environments']) # no macros should exist any longer self.assertEqual(db2.get_macro_spec('aaa').macroname, '<macro unknown>') self.assertEqual(db2.get_macro_spec('aaa').args_parser.argspec, '') self.assertEqual(db2.get_macro_spec('ddd').macroname, '<macro unknown>') self.assertEqual(db2.get_macro_spec('ddd').args_parser.argspec, '') # this should give 'eaaa' from cat1 self.assertEqual(db2.get_environment_spec('eaaa').environmentname, 'eaaa') self.assertEqual(db2.get_environment_spec('eaaa').args_parser.argspec, '{') # this should no longer exist self.assertEqual(db2.get_environment_spec('eddd').environmentname, '<env unknown>') self.assertEqual(db2.get_environment_spec('eddd').args_parser.argspec, '')
def test_filter_context_0(self): db = LatexContextDb() db.set_unknown_macro_spec(MacroSpec('<macro unknown>')) db.set_unknown_environment_spec(EnvironmentSpec('<env unknown>')) db.add_context_category('cat1', [ std_macro('aaa', '{'), std_macro('bbb', '[{[') ], [ std_environment('eaaa', '{'), std_environment('ebbb', '[{[') ]) db.add_context_category('cat2', [ std_macro('aaa', '[{'), std_macro('ccc', None) ], [ std_environment('eaaa', '[{'), std_environment('eccc', None) ]) db.add_context_category('cat3', [ std_macro('ccc', '*{'), std_macro('ddd', '{{[') ], [ std_environment('eccc', '*{'), std_environment('eddd', '{{[') ], prepend=True) db2 = db.filter_context(keep_categories=['cat1', 'cat2']) # this should give 'ccc' from cat2, not cat3 self.assertEqual(db2.get_macro_spec('ccc').macroname, 'ccc') self.assertEqual(db2.get_macro_spec('ccc').args_parser.argspec, '') # this should no longer exist self.assertEqual(db2.get_macro_spec('ddd').macroname, '<macro unknown>') self.assertEqual(db2.get_macro_spec('ddd').args_parser.argspec, '') # this should give 'eccc' from cat2, not cat3 self.assertEqual(db2.get_environment_spec('eccc').environmentname, 'eccc') self.assertEqual(db2.get_environment_spec('eccc').args_parser.argspec, '') # this should no longer exist self.assertEqual(db2.get_environment_spec('eddd').environmentname, '<env unknown>') self.assertEqual(db2.get_environment_spec('eddd').args_parser.argspec, '') # "unknowns" should be preserved self.assertEqual(db2.unknown_macro_spec, db.unknown_macro_spec) self.assertEqual(db2.unknown_environment_spec, db.unknown_environment_spec) self.assertEqual(db2.unknown_specials_spec, db.unknown_specials_spec)
def test_can_get_environment_spec(self): db = LatexContextDb() db.set_unknown_environment_spec(EnvironmentSpec('<unknown>')) db.add_context_category('cat1', [], [ std_environment('eaaa', '{'), std_environment('ebbb', '[{[') ]) db.add_context_category('cat2', [], [ std_environment('eaaa', '[{'), std_environment('eccc', None) ]) db.add_context_category('cat3', [], [ std_environment('eccc', '*{'), std_environment('eddd', '{{[') ], prepend=True) self.assertEqual(list(db.categories()), ['cat3', 'cat1', 'cat2']) self.assertEqual(db.get_environment_spec('eaaa').environmentname, 'eaaa') self.assertEqual(db.get_environment_spec('eaaa').args_parser.argspec, '{') self.assertEqual(db.get_environment_spec('ebbb').environmentname, 'ebbb') self.assertEqual(db.get_environment_spec('ebbb').args_parser.argspec, '[{[') self.assertEqual(db.get_environment_spec('eccc').environmentname, 'eccc') self.assertEqual(db.get_environment_spec('eccc').args_parser.argspec, '*{') self.assertEqual(db.get_environment_spec('eddd').environmentname, 'eddd') self.assertEqual(db.get_environment_spec('eddd').args_parser.argspec, '{{[') # default for unknown self.assertEqual(db.get_environment_spec('nonexistent').environmentname, '<unknown>') self.assertEqual(db.get_environment_spec('nonexistent').args_parser.argspec, '')
def test_idiom_4(self): spec = std_environment( std_environment('environ', '{*{{{', is_math_mode=True)) self.assertEqual(spec.environmentname, 'environ') self.assertEqual(spec.args_parser.argspec, '{*{{{') self.assertEqual(spec.is_math_mode, True)
def test_idiom_3b(self): spec = std_environment(('environ', None, '{{{{'), ) self.assertEqual(spec.environmentname, 'environ') self.assertEqual(spec.args_parser.argspec, '{{{{') self.assertEqual(spec.is_math_mode, False)
def test_idiom_0c(self): spec = std_environment('environ', '[{') self.assertEqual(spec.environmentname, 'environ') self.assertEqual(spec.args_parser.argspec, '[{') self.assertEqual(spec.is_math_mode, False)