argument-backend / aba /main_test.py
youssef
aba new backend api
0674654
"""
Main entry point for generating and analyzing an ABA+ framework.
This script:
1. Builds an ABA framework from a text specification.
2. Prints the original (classical) ABA framework.
3. Prepares the framework for ABA+ (atomic transformation + argument/attack generation).
4. Generates ABA+ components (assumption combinations, normal/reverse attacks).
5. Prints the resulting ABA+ framework components.
6. Plots the ABA+ attack graph between sets of assumptions.
"""
from copy import deepcopy
from aba.aba_builder import build_aba_framework, prepare_aba_plus_framework
from aba.aba_utils import print_aba_plus_results
from aba.aba_framework import ABAFramework
def testABA(aba_framework: ABAFramework):
copy_framework = deepcopy(aba_framework)
transformed_framework: ABAFramework = copy_framework.transform_aba()
print("\n ------- Transformed ABA framework -------\n ")
print(transformed_framework)
# Generate arguments
transformed_framework.generate_arguments()
gen_args = transformed_framework.arguments
print("\n ------- Generated arguments -------\n ")
print(gen_args)
# Generate attacks
transformed_framework.generate_attacks()
attacks = transformed_framework.attacks
print("\n ------- Generated attacks -------\n ")
print(attacks, "\n")
def testABAPlus(aba_framework: ABAFramework):
# === Step 2: Prepare the framework for ABA+ ===
aba_framework: ABAFramework = prepare_aba_plus_framework(aba_framework)
# === Step 3: Generate ABA+ components ===
print("\n" + "=" * 50)
print("Generating ABA+ Components")
print("=" * 50)
aba_framework.make_aba_plus()
# === Step 4: Print ABA+ results ===
print_aba_plus_results(aba_framework)
return aba_framework
def main():
"""
Main function to generate and analyze an ABA+ framework.
"""
# === Step 1: Build the ABA framework from input file ===
print("\n" + "=" * 50)
print("Building ABA+ Framework")
print("=" * 50)
# Build framework from the given input specification file
aba_framework = build_aba_framework("aba/examples/exemple.txt")
print(f"\n ------- Original ABA framework -------\n{aba_framework}")
base_framework = deepcopy(aba_framework)
testABA(base_framework)
aba_for_plus = deepcopy(aba_framework)
testABAPlus(aba_for_plus)
if __name__ == "__main__":
main()