summaryrefslogtreecommitdiff
path: root/benchmarks/10_registry.py
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/10_registry.py')
-rw-r--r--benchmarks/10_registry.py101
1 files changed, 101 insertions, 0 deletions
diff --git a/benchmarks/10_registry.py b/benchmarks/10_registry.py
new file mode 100644
index 0000000..d95a53f
--- /dev/null
+++ b/benchmarks/10_registry.py
@@ -0,0 +1,101 @@
+import pint
+
+from . import util
+
+units = ("meter", "kilometer", "second", "minute", "angstrom")
+
+other_units = ("meter", "angstrom", "kilometer/second", "angstrom/minute")
+
+all_values = ("int", "float", "complex")
+
+ureg = None
+data = {}
+
+
+def setup(*args):
+
+ global ureg, data
+
+ data["int"] = 1
+ data["float"] = 1.0
+ data["complex"] = complex(1, 2)
+
+ ureg = pint.UnitRegistry(util.get_tiny_def())
+
+
+def my_setup(*args):
+ global data
+ setup(*args)
+ for unit in units + other_units:
+ data["uc_%s" % unit] = pint.registry.to_units_container(unit, ureg)
+
+
+def time_build_cache():
+ ureg._build_cache()
+
+
+def time_getattr(key):
+ getattr(ureg, key)
+
+
+time_getattr.params = units
+
+
+def time_getitem(key):
+ ureg[key]
+
+
+time_getitem.params = units
+
+
+def time_parse_unit_name(key):
+ ureg.parse_unit_name(key)
+
+
+time_parse_unit_name.params = units
+
+
+def time_parse_units(key):
+ ureg.parse_units(key)
+
+
+time_parse_units.params = units
+
+
+def time_parse_expression(key):
+ ureg.parse_expression("1.0 " + key)
+
+
+time_parse_expression.params = units
+
+
+def time_base_units(unit):
+ ureg.get_base_units(unit)
+
+
+time_base_units.params = other_units
+
+
+def time_to_units_container_registry(unit):
+ pint.registry.to_units_container(unit, ureg)
+
+
+time_to_units_container_registry.params = other_units
+
+
+def time_to_units_container_detached(unit):
+ pint.registry.to_units_container(unit, ureg)
+
+
+time_to_units_container_detached.params = other_units
+
+
+def time_convert_from_uc(key):
+ src, dst = key
+ ureg._convert(1.0, data[src], data[dst])
+
+
+time_convert_from_uc.setup = my_setup
+time_convert_from_uc.params = [
+ (("uc_meter", "uc_kilometer"), ("uc_kilometer/second", "uc_angstrom/minute"))
+]