From 03661d7651e125f4e7bac5cd8c67a3212d80b085 Mon Sep 17 00:00:00 2001 From: Sylvain Leclerc Date: Sat, 27 Jul 2024 11:46:09 +0200 Subject: [PATCH] typing Signed-off-by: Sylvain Leclerc --- requirements-dev.txt | 4 +- src/cluster_resolve.py | 14 +- src/mersenne_twister.py | 8 +- src/ts_generator.py | 1 + tests/output/geometric_law_distrib.png | Bin 19505 -> 19424 bytes tests/output/test_100_unit_cluster.csv | 204 ++++++++++++------------- tests/output/test_one_unit_cluster.csv | 12 +- tests/output/uniform_law_distrib.png | Bin 14497 -> 14292 bytes tests/test_parsing.py | 14 +- 9 files changed, 130 insertions(+), 127 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index ec07d25..94dfab0 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,4 +2,6 @@ pytest~=7.0.0 mypy~=1.7.1 black~=23.7.0 isort~=5.12.0 -pytest-cov \ No newline at end of file +pytest-cov +pandas-stubs +types-PyYAML \ No newline at end of file diff --git a/src/cluster_resolve.py b/src/cluster_resolve.py index eec713a..7ddb227 100644 --- a/src/cluster_resolve.py +++ b/src/cluster_resolve.py @@ -25,15 +25,15 @@ def resolve_thermal_cluster( return ThermalCluster( unit_count=parsed_yaml.unit_count, nominal_power=parsed_yaml.nominal_power, - modulation=modulation["modulation"], + modulation=modulation["modulation"].to_list(), fo_law=law_dict[parsed_yaml.fo_law], fo_volatility=parsed_yaml.fo_volatility, po_law=law_dict[parsed_yaml.po_law], po_volatility=parsed_yaml.po_volatility, - fo_duration=parameters_ts["FOD"], - fo_rate=parameters_ts["FOR"], - po_duration=parameters_ts["POD"], - po_rate=parameters_ts["POR"], - npo_min=parameters_ts["POMax"], - npo_max=parameters_ts["POMin"], + fo_duration=parameters_ts["FOD"].to_list(), + fo_rate=parameters_ts["FOR"].to_list(), + po_duration=parameters_ts["POD"].to_list(), + po_rate=parameters_ts["POR"].to_list(), + npo_min=parameters_ts["POMax"].to_list(), + npo_max=parameters_ts["POMin"].to_list(), ) diff --git a/src/mersenne_twister.py b/src/mersenne_twister.py index e762908..1976703 100644 --- a/src/mersenne_twister.py +++ b/src/mersenne_twister.py @@ -38,14 +38,14 @@ class MersenneTwister: UPPER_MASK: int = 0x80000000 LOWER_MASK: int = 0x7FFFFFFF - MAG: Tuple[int] = (0, MATRIX_A) + MAG: Tuple[int, int] = (0, MATRIX_A) mt: List[int] = [0] * periodN mti: int = 0 @classmethod - def seed(self, seed: int): + def seed(self, seed: int) -> None: self.mt[0] = seed & 0xFFFFFFFF for i in range(1, self.periodN): self.mt[i] = 1812433253 * (self.mt[i - 1] ^ (self.mt[i - 1] >> 30)) + i @@ -54,7 +54,7 @@ def seed(self, seed: int): self.mti = self.periodN @classmethod - def next(self): + def next(self) -> float: if self.mti == self.periodN: for j in range(self.periodN - self.periodM): y = (self.mt[j] & self.UPPER_MASK) | (self.mt[j + 1] & self.LOWER_MASK) @@ -88,5 +88,5 @@ def next(self): return y / 4294967295 @classmethod - def reset(self): + def reset(self) -> None: self.seed(5489) diff --git a/src/ts_generator.py b/src/ts_generator.py index 5d4061e..6c357fe 100644 --- a/src/ts_generator.py +++ b/src/ts_generator.py @@ -18,6 +18,7 @@ from typing import Any, List, Optional, Tuple import numpy as np +from numpy.typing import ArrayLike from mersenne_twister import MersenneTwister diff --git a/tests/output/geometric_law_distrib.png b/tests/output/geometric_law_distrib.png index da1a8b39514535b441f7535b582a5270c0a8937e..7d8cec5bfa08d84d165333d94dd2690ba78912db 100644 GIT binary patch literal 19424 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 PPzXj<`*M-8_5J??i>}FW literal 19505 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 literal 14497 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 diff --git a/tests/test_parsing.py b/tests/test_parsing.py index 6a0f62e..dd9b413 100644 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -47,14 +47,14 @@ def test(cluster, data_directory): assert cld.unit_count == cluster.unit_count assert cld.nominal_power == cluster.nominal_power - assert cld.modulation.to_list() == cluster.modulation + assert cld.modulation == cluster.modulation assert cld.fo_law == cluster.fo_law assert cld.fo_volatility == cluster.fo_volatility assert cld.po_law == cluster.po_law assert cld.po_volatility == cluster.po_volatility - assert cld.fo_duration.to_list() == cluster.fo_duration - assert cld.fo_rate.to_list() == cluster.fo_rate - assert cld.po_duration.to_list() == cluster.po_duration - assert cld.po_rate.to_list() == cluster.po_rate - assert cld.npo_min.to_list() == cluster.npo_min - assert cld.npo_max.to_list() == cluster.npo_max + assert cld.fo_duration == cluster.fo_duration + assert cld.fo_rate == cluster.fo_rate + assert cld.po_duration == cluster.po_duration + assert cld.po_rate == cluster.po_rate + assert cld.npo_min == cluster.npo_min + assert cld.npo_max == cluster.npo_max