kopia lustrzana https://github.com/sepandhaghighi/samila
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 : autopep8pull/178/head^2
rodzic
3452354cd0
commit
773b89aac9
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue