// Offline scorer for the ASOR Delegation Chain interop vectors.
//
// Zero dependencies beyond the JDK: it calls the implementation's own
// conformance suite and prints one line per vector plus a final score.
//
//   javac -d out $(find src/main/java -name '*.java')
//   javac -cp out -d out tools/Score.java
//   java -cp out Score <vectors-directory>
//
// Every *.json in the directory is scored against its declared verdict and
// reason. Exit status is 0 only when every vector agrees.

import io.attenu.guard.conformance.VectorSuite;
import java.nio.file.Path;
import java.util.List;

public final class Score {
    public static void main(String[] args) {
        int bad = 0;
        for (String dir : args) {
            System.out.println("== " + dir);
            List<VectorSuite.Result> results = VectorSuite.run(Path.of(dir));
            int pass = 0;
            for (VectorSuite.Result r : results) {
                System.out.println("   " + r);
                if (r.passed()) pass++;
            }
            System.out.println("   SCORE " + pass + "/" + results.size());
            bad += results.size() - pass;
        }
        System.exit(bad == 0 ? 0 : 1);
    }
}
