Feat(random): Start random tree generation
This commit is contained in:
		| @@ -0,0 +1,67 @@ | |||||||
|  | #! /usr/bin/env python | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # vim:fenc=utf-8 | ||||||
|  | # | ||||||
|  | # Copyright © 2017 lafrite <lafrite@Poivre> | ||||||
|  | # | ||||||
|  | # Distributed under terms of the MIT license. | ||||||
|  |  | ||||||
|  | """ | ||||||
|  | Tools to extract random nodes, random variables, generate random values and | ||||||
|  | fill new trees | ||||||
|  |  | ||||||
|  | Flow | ||||||
|  | ---- | ||||||
|  |  | ||||||
|  | Tree with RdLeaf | ||||||
|  | | | ||||||
|  | | Extract nodes | ||||||
|  | | | ||||||
|  | List of nodes to generate | ||||||
|  | | | ||||||
|  | | extract_rv | ||||||
|  | | | ||||||
|  | List random variables to generate | ||||||
|  | | | ||||||
|  | | Generate | ||||||
|  | | | ||||||
|  | Dictionnary of generated random variables | ||||||
|  | | | ||||||
|  | | Compute nodes | ||||||
|  | | | ||||||
|  | Dictionnary of computed nodes | ||||||
|  | | | ||||||
|  | | Replace | ||||||
|  | | | ||||||
|  | Tree with RdLeaf replaced by generated values | ||||||
|  |  | ||||||
|  | """ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def extract_rv(node_list): | ||||||
|  |     """ Extract the set of random values from the node list | ||||||
|  |  | ||||||
|  |     :param node_list: list of nodes | ||||||
|  |     :return: set of random values | ||||||
|  |  | ||||||
|  |     :example: | ||||||
|  |     >>> node_list = ["{a}", "{a*k}"] | ||||||
|  |     >>> extract_rv(node_list) | ||||||
|  |     {"a", "k"} | ||||||
|  |     """ | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  | def compute_nodes(node_list, generated_values): | ||||||
|  |     """ Compute nodes from generated random values | ||||||
|  |  | ||||||
|  |     :param generated_values: Dictionnary of name:generated value | ||||||
|  |     :param node_list: list of nodes | ||||||
|  |     :return: Dictionnary of evaluated nodes from generated values | ||||||
|  |  | ||||||
|  |     :example: | ||||||
|  |     >>> node_list = ["{a}", "{a*k}"] | ||||||
|  |     >>> generated_values = {"a":2, "k":3} | ||||||
|  |     >>> compute_nodes(node_list, generated_values) | ||||||
|  |     {"{a}": 2, "{a*k}": 6}  | ||||||
|  |     """ | ||||||
|  |     pass | ||||||
|   | |||||||
| @@ -1,39 +0,0 @@ | |||||||
| #! /usr/bin/env python |  | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| # vim:fenc=utf-8 |  | ||||||
| # |  | ||||||
| # Copyright © 2017 lafrite <lafrite@Poivre> |  | ||||||
| # |  | ||||||
| # Distributed under terms of the MIT license. |  | ||||||
|  |  | ||||||
| """ |  | ||||||
| Function to create random strings |  | ||||||
|  |  | ||||||
| :example: |  | ||||||
|  |  | ||||||
| >>> form = "{a} / {b} + {c} / {k*b}" |  | ||||||
| >>> conditions = [ |  | ||||||
| ...    "abs({b}) != 1", |  | ||||||
| ...    "{d} > 1", |  | ||||||
| ...    "{b} != {d}", |  | ||||||
| ...    "gcd({a},{b}) == 1", |  | ||||||
| ...    "gcd({c},{k*b}) == 1", |  | ||||||
| ...    ] |  | ||||||
| >>> #random_str(form, conditions) |  | ||||||
|  |  | ||||||
| >>> form = "{a:int}x + {b:fraction}" |  | ||||||
| >>> conditions = [ |  | ||||||
| ...    "{b.denom} > 2", |  | ||||||
| ...    ] |  | ||||||
| >>> #random_str(form, conditions) |  | ||||||
|  |  | ||||||
| """ |  | ||||||
| import random |  | ||||||
|  |  | ||||||
| __all__ = [] |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # ----------------------------- |  | ||||||
| # Reglages pour 'vim' |  | ||||||
| # vim:set autoindent expandtab tabstop=4 shiftwidth=4: |  | ||||||
| # cursor: 16 del |  | ||||||
		Reference in New Issue
	
	Block a user