def test_identifier_checks(): legal_identifiers = ['v', 'Vm', 'V', 'x', 'ge', 'g_i', 'a2', 'gaba_123'] illegal_identifiers = ['_v', '1v', 'ü', 'ge!', 'v.x', 'for', 'else', 'if'] for identifier in legal_identifiers: try: check_identifier_basic(identifier) check_identifier_reserved(identifier) except ValueError as ex: raise AssertionError( f'check complained about identifier "{identifier}": {ex}') for identifier in illegal_identifiers: with pytest.raises(SyntaxError): check_identifier_basic(identifier) for identifier in ('t', 'dt', 'xi', 'i', 'N'): with pytest.raises(SyntaxError): check_identifier_reserved(identifier) for identifier in ('not_refractory', 'refractory', 'refractory_until'): with pytest.raises(SyntaxError): check_identifier_refractory(identifier) for identifier in ('exp', 'sin', 'sqrt'): with pytest.raises(SyntaxError): check_identifier_functions(identifier) for identifier in ('e', 'pi', 'inf'): with pytest.raises(SyntaxError): check_identifier_constants(identifier) for identifier in ('volt', 'second', 'mV', 'nA'): with pytest.raises(SyntaxError): check_identifier_units(identifier) # Check identifier registry assert check_identifier_basic in Equations.identifier_checks assert check_identifier_reserved in Equations.identifier_checks assert check_identifier_refractory in Equations.identifier_checks assert check_identifier_functions in Equations.identifier_checks assert check_identifier_constants in Equations.identifier_checks assert check_identifier_units in Equations.identifier_checks # Set up a dummy identifier check that disallows the variable name # gaba_123 (that is otherwise valid) def disallow_gaba_123(identifier): if identifier == 'gaba_123': raise SyntaxError("I do not like this name") Equations.check_identifier('gaba_123') old_checks = set(Equations.identifier_checks) Equations.register_identifier_check(disallow_gaba_123) with pytest.raises(SyntaxError): Equations.check_identifier('gaba_123') Equations.identifier_checks = old_checks # registering a non-function should not work with pytest.raises(ValueError): Equations.register_identifier_check('no function')
def test_identifier_checks(): legal_identifiers = ['v', 'Vm', 'V', 'x', 'ge', 'g_i', 'a2', 'gaba_123'] illegal_identifiers = ['_v', '1v', u'ü', 'ge!', 'v.x', 'for', 'else', 'if'] for identifier in legal_identifiers: try: check_identifier_basic(identifier) check_identifier_reserved(identifier) except ValueError as ex: raise AssertionError('check complained about ' 'identifier "%s": %s' % (identifier, ex)) for identifier in illegal_identifiers: assert_raises(SyntaxError, lambda: check_identifier_basic(identifier)) for identifier in ('t', 'dt', 'xi', 'i', 'N'): assert_raises(SyntaxError, lambda: check_identifier_reserved(identifier)) for identifier in ('not_refractory', 'refractory', 'refractory_until'): assert_raises(SyntaxError, lambda: check_identifier_refractory(identifier)) for identifier in ('exp', 'sin', 'sqrt'): assert_raises(SyntaxError, lambda: check_identifier_functions(identifier)) for identifier in ('e', 'pi', 'inf'): assert_raises(SyntaxError, lambda: check_identifier_constants(identifier)) for identifier in ('volt', 'second', 'mV', 'nA'): assert_raises(SyntaxError, lambda: check_identifier_units(identifier)) # Check identifier registry assert check_identifier_basic in Equations.identifier_checks assert check_identifier_reserved in Equations.identifier_checks assert check_identifier_refractory in Equations.identifier_checks assert check_identifier_functions in Equations.identifier_checks assert check_identifier_constants in Equations.identifier_checks assert check_identifier_units in Equations.identifier_checks # Set up a dummy identifier check that disallows the variable name # gaba_123 (that is otherwise valid) def disallow_gaba_123(identifier): if identifier == 'gaba_123': raise SyntaxError('I do not like this name') Equations.check_identifier('gaba_123') old_checks = set(Equations.identifier_checks) Equations.register_identifier_check(disallow_gaba_123) assert_raises(SyntaxError, lambda: Equations.check_identifier('gaba_123')) Equations.identifier_checks = old_checks # registering a non-function should not work assert_raises(ValueError, lambda: Equations.register_identifier_check('no function'))
def test_identifier_checks(): legal_identifiers = ['v', 'Vm', 'V', 'x', 'ge', 'g_i', 'a2', 'gaba_123'] illegal_identifiers = ['_v', '1v', u'ü', 'ge!', 'v.x', 'for', 'else', 'if'] for identifier in legal_identifiers: try: check_identifier_basic(identifier) check_identifier_reserved(identifier) except ValueError as ex: raise AssertionError('check complained about ' 'identifier "%s": %s' % (identifier, ex)) for identifier in illegal_identifiers: assert_raises(ValueError, lambda: check_identifier_basic(identifier)) for identifier in ('t', 'dt', 'xi'): assert_raises(ValueError, lambda: check_identifier_reserved(identifier)) for identifier in ('not_refractory', 'refractory', 'refractory_until'): assert_raises(ValueError, lambda: check_identifier_refractory(identifier)) for identifier in ('exp', 'sin', 'sqrt'): assert_raises(ValueError, lambda: check_identifier_functions(identifier)) for identifier in ('volt', 'second', 'mV', 'nA'): assert_raises(ValueError, lambda: check_identifier_units(identifier)) # Check identifier registry assert check_identifier_basic in Equations.identifier_checks assert check_identifier_reserved in Equations.identifier_checks assert check_identifier_refractory in Equations.identifier_checks assert check_identifier_functions in Equations.identifier_checks assert check_identifier_units in Equations.identifier_checks # Set up a dummy identifier check that disallows the variable name # gaba_123 (that is otherwise valid) def disallow_gaba_123(identifier): if identifier == 'gaba_123': raise ValueError('I do not like this name') Equations.check_identifier('gaba_123') old_checks = set(Equations.identifier_checks) Equations.register_identifier_check(disallow_gaba_123) assert_raises(ValueError, lambda: Equations.check_identifier('gaba_123')) Equations.identifier_checks = old_checks # registering a non-function should now work assert_raises(ValueError, lambda: Equations.register_identifier_check('no function'))