Closed jagalindo closed 3 years ago
¿Los test de @GermanMT cuales son, https://github.com/diverso-lab/benchmarking ? Quizás sea interesante moverlos al propio core o a alguno de los plugins si encajan bien.
Los test de @jmhorcas, he estado mirando y podemos mover: test_configuration al core y test_godelization en el fm_metamodel. Los de test_featureIDE_parser, como hacen referencia a los plugin de pysat y de fm, quizás podamos moverlo a pysat aunque sea necesario añadir como dependencia fm
Los de test_godelization no son necesarios porque no se ha integrado esa funcionalidad.
En el caso de test_featureIDE_parser serían necearios los propios modelos que usan los tests.
Buenas. Los test de @jmhorcas podemos desjarlos para una release en sept. De momento lo ideal sería poder ejecutar al menos los tests (unit-testing) situados en la https://github.com/diverso-lab/benchmarking
Esta tarea la he dejado hecha en la rama develop del repo https://github.com/diverso-lab/benchmarking
Ya he añadido las github actions con el linter y la ejecución de test.
Por otra parte, comento varias cosas que he visto para que vayamos mejorando el código y sigamos todo lo posible la guía de estilo de python:
import pytest
from famapy.metamodels.fm_metamodel.transformations.xml_transformation import XMLTransformation
from famapy.metamodels.pysat_metamodel.transformations.fm_to_pysat import FmToPysat
from famapy.metamodels.pysat_metamodel.models.pysat_model import PySATModel
from famapy.metamodels.pysat_metamodel.operations.glucose3_core_features import Glucose3CoreFeatures
PATH_CORE_FEATURES = 'models/fama_test_suite/error-guessing/core-features/'
def core_features_operation(model: PySATModel, expected_output: list):
core_features_operation = Glucose3CoreFeatures()
core_features_operation.execute(model)
core_features = core_features_operation.get_core_features()
assert core_features == expected_output
def load_model(model_path):
xmlreader = XMLTransformation(model_path)
fm = xmlreader.transform()
transform = FmToPysat(fm)
return transform.transform()
@pytest.mark.parametrize(('filepath', 'expected_output'), [
(f'{PATH_CORE_FEATURES}case1/cf-case1.xml', ['A', 'B']),
(f'{PATH_CORE_FEATURES}case2/cf-case2.xml', ['A','B']),
(f'{PATH_CORE_FEATURES}case3/cf-case3.xml', ['A','B','C']),
(f'{PATH_CORE_FEATURES}case4/cf-case4.xml', ['A','B','C','E']),
(f'{PATH_CORE_FEATURES}case5/cf-case5.xml', ['A','B','C','D']),
(f'{PATH_CORE_FEATURES}case6/cf-case6.xml', []),
])
def test_core_feature(filepath, expected_output):
pysat_model = load_model(filepath)
core_features_operation(pysat_model, expected_output)
Create a repository for complex testing. Metamorphic, random generation, simple tests
Integrar esos tests queue ha implementado @German en el sistema de CI
Mmirar tambien en integrar los test de fIDE de @jmhorcas https://github.com/jmhorcas/famapy-aafms/tree/main/tests