julienmalard/Tikon

View on GitHub
pruebas/test_central/rcrs/ec_apriori_auto.py

Summary

Maintainability
A
1 hr
Test Coverage
from scipy.stats import uniform
from tikon.central import Módulo, SimulMódulo, Modelo, Exper, Parcela, Coso
from tikon.central.res import Resultado
from tikon.ecs import ÁrbolEcs, CategEc, Ecuación, SubcategEc, EcuaciónVacía, Parám
from tikon.ecs.aprioris import APrioriDist
from tikon.ecs.dists import líms_dist

apr = uniform(0, 5)
rango = líms_dist(apr)


class A(Parám):
    nombre = 'a'
    unids = None
    líms = (0, None)
    apriori = APrioriDist(apr)


class EcuaciónParám(Ecuación):
    nombre = 'ec'
    eje_cosos = 'coso'
    cls_ramas = [A]

    def eval(símismo, paso, sim):
        símismo.poner_valor_mód(sim, 'res', símismo.cf['a'])


class SubCategParám(SubcategEc):
    nombre = 'subcateg'
    cls_ramas = [EcuaciónParám, EcuaciónVacía]
    eje_cosos = 'coso'


class CategParám(CategEc):
    nombre = 'categ'
    cls_ramas = [SubCategParám]
    eje_cosos = 'coso'


class EcsParám(ÁrbolEcs):
    nombre = 'Ecs obt val'
    cls_ramas = [CategParám]


class CosoParám(Coso):
    def __init__(símismo, nombre):
        super().__init__(nombre, EcsParám)


class Res(Resultado):
    unids = None
    nombre = 'res'

    def __init__(símismo, sim, coords, vars_interés):
        coords = {'coso': sim.ecs.cosos, **coords}
        super().__init__(sim=sim, coords=coords, vars_interés=vars_interés)


class SimulMóduloParám(SimulMódulo):
    resultados = [Res]


coso = CosoParám('hola')


class MóduloParám(Módulo):
    nombre = 'módulo'
    cls_simul = SimulMóduloParám
    eje_coso = 'coso'

    def __init__(símismo, cosos=None):
        símismo.l_cosos = cosos
        super().__init__(cosos)

    def gen_ecs(símismo, modelo, mód, exper, n_reps):
        return EcsParám(modelo, mód, exper, cosos=símismo.l_cosos, n_reps=n_reps)


mi_exper = Exper('exper', Parcela('parcela'))
mi_modelo = Modelo(MóduloParám([coso]))