vcristiani / galaxy-chop

MIT License
5 stars 2 forks source link

Galaxy particle size validation #80

Closed leliel12 closed 3 years ago

leliel12 commented 3 years ago

Implementar en la funcion de attrs __attrs_post_init__(self): la validacion de que los arrays que tienen que tener el mismo valor sean efectivamente del mismo valor.

Deben escribirel test test_enforce same size donde debe validarse que cuando un array no coincide con sus arrays hermanos lance un ValueError

Ejemplo

Es una implementacion parcial que solo compara posiciones

nota asumo que galaxy_params es un fixture que devuelve una funcion que sirve para generar un diccionario aleatorio con todos los parametros de una clase Galaxy. Puede asignarse a cada "familia" de particulas largos diferentes

@pytest.mark.parametrize(shorten, ["x_s", "y_s", "z_s", "x_g", "y_g", "z_g", "x_dm", "y_dm", "z_dm"])
def test_same_size_stars(shorten, galaxy_params):
    params = galaxy_params(seed=42, stars=10, gas=20, dm=30)
    params[shorten] = params[shorten][:-1]
    with pytest.raises(ValueError):
        Galaxy(**params)

Eso genera 9 tests en el cual en cada uno le quita un elemento a un solo parametro y verifica que eso falle.