def test_clear_funcs_with_ref(function_factory: FunctionFactoryBase): const_cls = function_factory.get('ConstFunc') f = const_cls(function_factory=function_factory, duration=4, a=.7, name='f') f2 = const_cls(function_factory=function_factory, duration=5, a=.9, name='f2') function_factory.add_func(f) function_factory.add_func(f2) assert function_factory.funcs_inst['f'] is f assert f in function_factory.funcs_user assert function_factory.funcs_inst['f2'] is f2 assert f2 in function_factory.funcs_user ref = function_factory.get_func_ref(name='f') function_factory.clear_added_funcs() # f should not have been removed, but f2 was removed assert ref.func is f assert f.has_ref assert function_factory.funcs_inst['f'] is f assert f in function_factory.funcs_user assert 'f2' not in function_factory.funcs_inst assert f2 not in function_factory.funcs_user function_factory.clear_added_funcs(force=True) assert ref.func is f assert f.has_ref assert 'f' not in function_factory.funcs_inst assert f not in function_factory.funcs_user function_factory.return_func_ref(ref) assert not f.has_ref
def test_clear_funcs(function_factory: FunctionFactoryBase): assert not function_factory.funcs_user initial_funcs_n = len(function_factory.funcs_inst) const_cls = function_factory.get('ConstFunc') f = const_cls(function_factory=function_factory, duration=4, a=.7, name='f') function_factory.add_func(f) f2 = const_cls(function_factory=function_factory, duration=4, a=.7, name='f2') function_factory.add_func(f2) assert len(function_factory.funcs_inst) == initial_funcs_n + 2 function_factory.test_changes_count = 0 function_factory.clear_added_funcs() assert len(function_factory.funcs_inst) == initial_funcs_n assert not function_factory.funcs_user