tool-count 750 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. command -v jq >/dev/null || { echo "jq required"; exit 127; }
  4. TOOL="$1"
  5. OP="$2"
  6. EXPECTED="$3"
  7. FILE="tool_calls.jsonl"
  8. COUNT=$(jq -s "[.[] | select(.tool == \"$TOOL\")] | length" "$FILE" 2>/dev/null || echo 0)
  9. case "$OP" in
  10. eq) TEST=$(( COUNT == EXPECTED )) ;;
  11. gt) TEST=$(( COUNT > EXPECTED )) ;;
  12. gte) TEST=$(( COUNT >= EXPECTED )) ;;
  13. lt) TEST=$(( COUNT < EXPECTED )) ;;
  14. lte) TEST=$(( COUNT <= EXPECTED )) ;;
  15. *) echo "Unknown operator: $OP (expected: eq, gt, gte, lt, lte)"; exit 2 ;;
  16. esac
  17. if [ "$TEST" -eq 1 ]; then
  18. echo "PASS: $TOOL called $COUNT time(s) ($OP $EXPECTED)"
  19. exit 0
  20. else
  21. echo "FAIL: $TOOL called $COUNT time(s) (expected $OP $EXPECTED)"
  22. exit 1
  23. fi