#!/usr/bin/env bash
set -euo pipefail
command -v jq >/dev/null || { echo "jq required"; exit 127; }

TOOL="$1"
OP="$2"
EXPECTED="$3"
FILE="tool_calls.jsonl"

COUNT=$(jq -s "[.[] | select(.tool == \"$TOOL\")] | length" "$FILE" 2>/dev/null || echo 0)

case "$OP" in
    eq)  TEST=$(( COUNT == EXPECTED )) ;;
    gt)  TEST=$(( COUNT >  EXPECTED )) ;;
    gte) TEST=$(( COUNT >= EXPECTED )) ;;
    lt)  TEST=$(( COUNT <  EXPECTED )) ;;
    lte) TEST=$(( COUNT <= EXPECTED )) ;;
    *)   echo "Unknown operator: $OP (expected: eq, gt, gte, lt, lte)"; exit 2 ;;
esac

if [ "$TEST" -eq 1 ]; then
    echo "PASS: $TOOL called $COUNT time(s) ($OP $EXPECTED)"
    exit 0
else
    echo "FAIL: $TOOL called $COUNT time(s) (expected $OP $EXPECTED)"
    exit 1
fi
