Skip to content

Commit d791fe3

Browse files
authored
Merge pull request #25 from PySATL/feature/limit-distributions-database-model
Limit distributions database model.
2 parents 59388b4 + e644bcc commit d791fe3

File tree

20 files changed

+329
-192
lines changed

20 files changed

+329
-192
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ You're all set! You can now import and use the statistical tests in your Python
2626

2727
```python
2828
# import needed criterion from pysatl_criterion
29-
from pysatl_criterion.normal import KolmogorovSmirnovNormalityGofStatistic
30-
29+
from pysatl_criterion import KolmogorovSmirnovNormalityGofStatistic
3130

3231
# make a criterion object
3332
criterion = KolmogorovSmirnovNormalityGofStatistic(mean=0, var=1)

pysatl_criterion/__init__.py

Lines changed: 0 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +0,0 @@
1-
from pysatl_criterion.common import (
2-
ADStatistic,
3-
Chi2Statistic,
4-
CrammerVonMisesStatistic,
5-
KSStatistic,
6-
LillieforsTest,
7-
MinToshiyukiStatistic,
8-
)
9-
from pysatl_criterion.exponent import (
10-
AbstractExponentialityGofStatistic,
11-
AhsanullahExponentialityGofStatistic,
12-
AtkinsonExponentialityGofStatistic,
13-
CoxOakesExponentialityGofStatistic,
14-
CramerVonMisesExponentialityGofStatistic,
15-
DeshpandeExponentialityGofStatistic,
16-
EppsPulleyExponentialityGofStatistic,
17-
EpsteinExponentialityGofStatistic,
18-
FroziniExponentialityGofStatistic,
19-
GiniExponentialityGofStatistic,
20-
GnedenkoExponentialityGofStatistic,
21-
HarrisExponentialityGofStatistic,
22-
HegazyGreen1ExponentialityGofStatistic,
23-
HegazyGreen2ExponentialityGofStatistic,
24-
HollanderProshanExponentialityGofStatistic,
25-
KimberMichaelExponentialityGofStatistic,
26-
KocharExponentialityGofStatistic,
27-
KolmogorovSmirnovExponentialityGofStatistic,
28-
LorenzExponentialityGofStatistic,
29-
MoranExponentialityGofStatistic,
30-
PietraExponentialityGofStatistic,
31-
RossbergExponentialityGofStatistic,
32-
ShapiroWilkExponentialityGofStatistic,
33-
WeExponentialityGofStatistic,
34-
WongWongExponentialityGofStatistic,
35-
)
36-
from pysatl_criterion.models import AbstractStatistic
37-
from pysatl_criterion.weibull import (
38-
AbstractWeibullGofStatistic,
39-
AndersonDarlingWeibullGofStatistic,
40-
Chi2PearsonWeibullGofStatistic,
41-
CrammerVonMisesWeibullGofStatistic,
42-
KolmogorovSmirnovWeibullGofStatistic,
43-
LillieforsWeibullGofStatistic,
44-
LOSWeibullGofStatistic,
45-
MinToshiyukiWeibullGofStatistic,
46-
MSFWeibullGofStatistic,
47-
NormalizeSpaceWeibullGofStatistic,
48-
OKWeibullGofStatistic,
49-
REJGWeibullGofStatistic,
50-
RSBWeibullGofStatistic,
51-
SBWeibullGofStatistic,
52-
SbWeibullGofStatistic,
53-
SPPWeibullGofStatistic,
54-
ST1WeibullGofStatistic,
55-
ST2WeibullGofStatistic,
56-
TikuSinghWeibullGofStatistic,
57-
WPPWeibullGofStatistic,
58-
)
59-
60-
61-
__all__ = [
62-
"AbstractStatistic",
63-
"ADStatistic",
64-
"Chi2Statistic",
65-
"CrammerVonMisesStatistic",
66-
"KolmogorovSmirnovWeibullGofStatistic",
67-
"SBWeibullGofStatistic",
68-
"SbWeibullGofStatistic",
69-
"RSBWeibullGofStatistic",
70-
"LillieforsTest",
71-
"MinToshiyukiStatistic",
72-
"WPPWeibullGofStatistic",
73-
"NormalizeSpaceWeibullGofStatistic",
74-
"AbstractWeibullGofStatistic",
75-
"TikuSinghWeibullGofStatistic",
76-
"ST2WeibullGofStatistic",
77-
"ST1WeibullGofStatistic",
78-
"SPPWeibullGofStatistic",
79-
"REJGWeibullGofStatistic",
80-
"OKWeibullGofStatistic",
81-
"MSFWeibullGofStatistic",
82-
"MinToshiyukiWeibullGofStatistic",
83-
"CrammerVonMisesWeibullGofStatistic",
84-
"LillieforsWeibullGofStatistic",
85-
"LOSWeibullGofStatistic",
86-
"Chi2PearsonWeibullGofStatistic",
87-
"AndersonDarlingWeibullGofStatistic",
88-
"KSStatistic",
89-
"AbstractExponentialityGofStatistic",
90-
"AhsanullahExponentialityGofStatistic",
91-
"AtkinsonExponentialityGofStatistic",
92-
"CoxOakesExponentialityGofStatistic",
93-
"CramerVonMisesExponentialityGofStatistic",
94-
"GiniExponentialityGofStatistic",
95-
"HegazyGreen1ExponentialityGofStatistic",
96-
"HegazyGreen2ExponentialityGofStatistic",
97-
"HarrisExponentialityGofStatistic",
98-
"HollanderProshanExponentialityGofStatistic",
99-
"KocharExponentialityGofStatistic",
100-
"KimberMichaelExponentialityGofStatistic",
101-
"KolmogorovSmirnovExponentialityGofStatistic",
102-
"LorenzExponentialityGofStatistic",
103-
"MoranExponentialityGofStatistic",
104-
"PietraExponentialityGofStatistic",
105-
"RossbergExponentialityGofStatistic",
106-
"ShapiroWilkExponentialityGofStatistic",
107-
"WeExponentialityGofStatistic",
108-
"WongWongExponentialityGofStatistic",
109-
"DeshpandeExponentialityGofStatistic",
110-
"EppsPulleyExponentialityGofStatistic",
111-
"EpsteinExponentialityGofStatistic",
112-
"FroziniExponentialityGofStatistic",
113-
"GnedenkoExponentialityGofStatistic",
114-
"AbstractNormalityGofStatistic",
115-
"AndersonDarlingNormalityGofStatistic",
116-
"ADStatistic",
117-
"BHSNormalityGofStatistic",
118-
"BonettSeierNormalityGofStatistic",
119-
"BontempsMeddahi1NormalityGofStatistic",
120-
"BontempsMeddahi2NormalityGofStatistic",
121-
"CabanaCabana1NormalityGofStatistic",
122-
"CabanaCabana2NormalityGofStatistic",
123-
"ChenShapiroNormalityGofStatistic",
124-
"CoinNormalityGofStatistic",
125-
"CramerVonMiseNormalityGofStatistic",
126-
"DagostinoNormalityGofStatistic",
127-
"DAPNormalityGofStatistic",
128-
"DesgagneLafayeNormalityGofStatistic",
129-
"DoornikHansenNormalityGofStatistic",
130-
"EppsPulleyNormalityGofStatistic",
131-
"FilliNormalityGofStatistic",
132-
"GlenLeemisBarrNormalityGofStatistic",
133-
"GMGNormalityGofStatistic",
134-
"Hosking1NormalityGofStatistic",
135-
"Hosking2NormalityGofStatistic",
136-
"Hosking3NormalityGofStatistic",
137-
"Hosking4NormalityGofStatistic",
138-
"JBNormalityGofStatistic",
139-
"KolmogorovSmirnovNormalityGofStatistic",
140-
"KSStatistic",
141-
"KurtosisNormalityGofStatistic",
142-
"LillieforsNormalityGofStatistic",
143-
"LillieforsTest",
144-
"LooneyGulledgeNormalityGofStatistic",
145-
"MartinezIglewiczNormalityGofStatistic",
146-
"RobustJarqueBeraNormalityGofStatistic",
147-
"RyanJoinerNormalityGofStatistic",
148-
"SFNormalityGofStatistic",
149-
"SkewNormalityGofStatistic",
150-
"SpiegelhalterNormalityGofStatistic",
151-
"ShapiroWilkNormalityGofStatistic",
152-
"SWRGNormalityGofStatistic",
153-
"ZhangQNormalityGofStatistic",
154-
"ZhangQStarNormalityGofStatistic",
155-
"ZhangWuANormalityGofStatistic",
156-
"ZhangWuCNormalityGofStatistic",
157-
]

pysatl_criterion/persistence/__init__.py

Whitespace-only changes.

pysatl_criterion/persistence/model/__init__.py

Whitespace-only changes.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from dataclasses import dataclass
2+
from typing import Protocol, TypeVar
3+
4+
5+
class IStorage(Protocol):
6+
"""
7+
Storage interface.
8+
"""
9+
10+
def init(self) -> None:
11+
"""
12+
Initialize storage.
13+
"""
14+
pass
15+
16+
17+
@dataclass
18+
class DataModel:
19+
"""
20+
Data model for data storage.
21+
"""
22+
23+
pass
24+
25+
26+
@dataclass
27+
class DataQuery:
28+
"""
29+
Query for data storage.
30+
"""
31+
32+
pass
33+
34+
35+
M = TypeVar("M", bound=DataModel)
36+
Q = TypeVar("Q", contravariant=True, bound=DataQuery)
37+
38+
39+
class IDataStorage(IStorage, Protocol[M, Q]):
40+
"""
41+
Data storage interface.
42+
"""
43+
44+
def get_data(self, query: Q) -> M:
45+
"""
46+
Get data from data storage.
47+
48+
:param query: query for storage
49+
50+
:return: data in storage
51+
"""
52+
pass
53+
54+
def insert_data(self, data: M) -> None:
55+
"""
56+
Insert data to data storage.
57+
58+
:param data: data to insert
59+
60+
:return: None
61+
"""
62+
pass
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from dataclasses import dataclass
2+
from typing import Protocol
3+
4+
from pysatl_criterion.persistence.model.common.data_storage.data_storage import (
5+
DataModel,
6+
DataQuery,
7+
IDataStorage,
8+
)
9+
10+
11+
@dataclass
12+
class LimitDistributionModel(DataModel):
13+
experiment_id: int
14+
criterion_code: str
15+
criterion_parameters: list[float]
16+
sample_size: int
17+
monte_carlo_count: int
18+
results_statistics: list[float]
19+
20+
21+
@dataclass
22+
class LimitDistributionQuery(DataQuery):
23+
criterion_code: str
24+
criterion_parameters: list[float]
25+
sample_size: int
26+
monte_carlo_count: int
27+
28+
29+
class ILimitDistributionStorage(
30+
IDataStorage[LimitDistributionModel, LimitDistributionQuery], Protocol
31+
):
32+
"""
33+
Limit distribution storage interface.
34+
"""
35+
36+
pass

0 commit comments

Comments
 (0)