From f8fc0dedae7fbcf5a2ed0998e18f625dd0ab42e8 Mon Sep 17 00:00:00 2001 From: "Mads M. Pedersen" <mmpe@dtu.dk> Date: Fri, 21 Jul 2017 13:03:51 +0200 Subject: [PATCH] example of cache property --- wetb/utils/tests/test_caching.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/wetb/utils/tests/test_caching.py b/wetb/utils/tests/test_caching.py index 417087a1..94530e7c 100644 --- a/wetb/utils/tests/test_caching.py +++ b/wetb/utils/tests/test_caching.py @@ -17,9 +17,6 @@ import unittest from wetb.utils.timing import get_time from wetb.utils.caching import cache_function, set_cache_property, cache_method -import pdb - - class Example(object): @@ -32,6 +29,11 @@ class Example(object): def slow_function(self): time.sleep(1) return 1 + + @property + @cache_function + def test_cache_property(self): + return self.slow_function() @cache_function def test_cache_function(self): @@ -65,14 +67,14 @@ class TestCacheProperty(unittest.TestCase): e = Example() self.assertAlmostEqual(e.prop("test")[1], 1, 1) self.assertAlmostEqual(e.prop("test")[1], 0, 2) - + def testcache_property_pool(self): e = Example() e.prop("pool") #load pool self.assertAlmostEqual(e.prop("pool")[1], 0, places=4) #print (get_time(e.pool.map)(f, range(10))) - - + + def test_cache_function(self): e = Example() self.assertAlmostEqual(get_time(e.test_cache_function)()[1], 1, places=1) @@ -81,8 +83,8 @@ class TestCacheProperty(unittest.TestCase): self.assertAlmostEqual(get_time(e.test_cache_function)()[1], 0, places=1) e.clear_cache() self.assertAlmostEqual(get_time(e.test_cache_function)()[1], 1, places=1) + - def test_cache_function_with_arguments(self): e = Example() self.assertAlmostEqual(get_time(e.test_cache_method1)(3)[1], 1, places=1) @@ -99,6 +101,15 @@ class TestCacheProperty(unittest.TestCase): self.assertEqual(e.test_cache_method1(3), 3) self.assertEqual(e.test_cache_method1(5), 5) self.assertAlmostEqual(get_time(e.test_cache_method1)(5)[1], 0, places=1) + + def test_cache_property(self): + e = Example() + t = time.time() + e.test_cache_property + self.assertAlmostEqual(time.time()-t, 1, places=1) + t = time.time() + e.test_cache_property + self.assertAlmostEqual(time.time()-t, 0, places=1) if __name__ == "__main__": #import sys;sys.argv = ['', 'Test.testName'] unittest.main() -- GitLab