Random mode modification (#175)

* fix : OPERATORS_LIST updated

* fix : random_equation_gen modified

* fix : RANDOM_EQUATION_GEN_FOF_MAX_DEPTH added

* fix : ELEMENTS_LIST updated

* fix : random equation generator params added

* fix : ARGUMENTS_LIST updated

* doc : CHANGELOG updated

* fix : autopep8
pull/178/head^2
Sepand Haghighi 2023-01-19 12:09:33 +03:30 zatwierdzone przez GitHub
rodzic 3452354cd0
commit 773b89aac9
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
3 zmienionych plików z 29 dodań i 9 usunięć

Wyświetl plik

@ -7,8 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
### Added
- `python_version` attribute
- `RANDOM_EQUATION_MIN_COMPLEXITY` parameter
- `RANDOM_EQUATION_FOF_MAX_DEPTH` parameter
- `RANDOM_EQUATION_FOF_MIN_DEPTH` parameter
### Changed
- `load_config` function modified
- Random mode modified
- `RANDOM_EQUATION_GEN_COMPLEXITY` parameter renamed to `RANDOM_EQUATION_MAX_COMPLEXITY`
## [1.0] - 2022-12-14
### Added
- `Marker` enum

Wyświetl plik

@ -20,7 +20,8 @@ from .params import NO_FIG_ERROR_MESSAGE, FIG_SAVE_SUCCESS_MESSAGE, NFT_STORAGE_
from .params import INVALID_COLOR_TYPE_ERROR, COLOR_SIZE_ERROR
from .params import BOTH_COLOR_COMPLEMENT_WARNING, COLOR_NOT_FOUND_WARNING
from .params import DATA_SAVE_SUCCESS_MESSAGE, SEED_LOWER_BOUND, SEED_UPPER_BOUND
from .params import ELEMENTS_LIST, ARGUMENTS_LIST, OPERATORS_LIST, RANDOM_COEF_LIST, RANDOM_EQUATION_GEN_COMPLEXITY
from .params import ELEMENTS_LIST, ARGUMENTS_LIST, OPERATORS_LIST, RANDOM_COEF_LIST
from .params import RANDOM_EQUATION_MIN_COMPLEXITY, RANDOM_EQUATION_MAX_COMPLEXITY, RANDOM_EQUATION_FOF_MIN_DEPTH, RANDOM_EQUATION_FOF_MAX_DEPTH
from .errors import samilaDataError, samilaPlotError, samilaConfigError
from warnings import warn
@ -31,17 +32,20 @@ def random_equation_gen():
:return: equation as str
"""
num_elements = random.randint(1, RANDOM_EQUATION_GEN_COMPLEXITY)
num_elements = random.randint(
RANDOM_EQUATION_MIN_COMPLEXITY,
RANDOM_EQUATION_MAX_COMPLEXITY)
result = ""
index = 1
random_coef = random.choice(RANDOM_COEF_LIST)
while(index <= num_elements):
argument = random.choice(ARGUMENTS_LIST)
if random.randint(0, 1) == 1:
argument = random.choice(ELEMENTS_LIST).format(
random_coef, argument)
result = result + \
random.choice(ELEMENTS_LIST).format(random_coef, argument)
element = random.choice(ARGUMENTS_LIST)
fof_depth = random.randint(
RANDOM_EQUATION_FOF_MIN_DEPTH,
RANDOM_EQUATION_FOF_MAX_DEPTH)
for _ in range(fof_depth):
element = random.choice(ELEMENTS_LIST).format(random_coef, element)
result = result + element
if index < num_elements:
result = result + random.choice(OPERATORS_LIST)
index = index + 1

Wyświetl plik

@ -114,6 +114,7 @@ RANDOM_COEF_LIST = [
"random.lognormvariate(0,1)"]
ELEMENTS_LIST = [
"{0}*math.exp({1})",
"{0}*math.atan({1})",
"{0}*math.asinh({1})",
"{0}*math.acosh(abs({1})+1)",
@ -125,6 +126,7 @@ ELEMENTS_LIST = [
"{0}*math.sin({1})",
"{0}*math.tan({1})",
"{0}*{1}",
"{0}/{1}",
"{0}*abs({1})",
"{0}*math.ceil({1})",
"{0}*math.floor({1})"]
@ -133,6 +135,9 @@ ARGUMENTS_LIST = [
"x*y",
"x",
"y",
"1/x",
"1/y",
"x/y",
"y-x",
"x-y",
"x+y",
@ -151,4 +156,10 @@ ARGUMENTS_LIST = [
OPERATORS_LIST = ["+", "-", "*", "/"]
RANDOM_EQUATION_GEN_COMPLEXITY = len(ELEMENTS_LIST) + 1
RANDOM_EQUATION_MAX_COMPLEXITY = len(ELEMENTS_LIST) + 1
RANDOM_EQUATION_MIN_COMPLEXITY = 1
RANDOM_EQUATION_FOF_MAX_DEPTH = 3
RANDOM_EQUATION_FOF_MIN_DEPTH = 1