Download benchmarks/evals/semantic_search_quality/test_validation.sh from SaylorTwift/forgecode: direct link, hf CLI and curl.
- Browser
- Download file 3.75 kB
-
https://huggingface.co/SaylorTwift/forgecode/resolve/main/benchmarks/evals/semantic_search_quality/test_validation.sh
- Command line
-
hf download hf://SaylorTwift/forgecode/benchmarks/evals/semantic_search_quality/test_validation.sh
-
curl -L -o test_validation.sh https://huggingface.co/SaylorTwift/forgecode/resolve/main/benchmarks/evals/semantic_search_quality/test_validation.sh
3.75 kB
| # Test script for semantic search quality validation | |
| # This tests the validation logic without requiring actual LLM calls | |
| set -e | |
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | |
| TEST_DIR="/tmp/test_semantic_eval_$$" | |
| echo "======================================" | |
| echo "Testing Semantic Search Quality Eval" | |
| echo "======================================" | |
| echo | |
| mkdir -p "$TEST_DIR" | |
| # Test 1: Validation passes when sem_search is used | |
| echo "Test 1: Check that sem_search tool detection works..." | |
| cat > "$TEST_DIR/context.json" <<'EOF' | |
| { | |
| "messages": [ | |
| { | |
| "role": "assistant", | |
| "tool_calls": [ | |
| { | |
| "id": "call_1", | |
| "type": "function", | |
| "function": { | |
| "name": "sem_search", | |
| "arguments": "{\"queries\":[{\"query\":\"test query\",\"use_case\":\"test case\"}]}" | |
| } | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| EOF | |
| if cat "$TEST_DIR/context.json" | jq -e '[.messages[]?.tool_calls[]? | select(.function.name == "sem_search")] | any' > /dev/null 2>&1; then | |
| echo "β Test 1 PASSED: sem_search tool detected correctly" | |
| else | |
| echo "β Test 1 FAILED: sem_search tool not detected" | |
| exit 1 | |
| fi | |
| echo | |
| # Test 2: Validation skips when sem_search is NOT used | |
| echo "Test 2: Check that missing sem_search is detected..." | |
| cat > "$TEST_DIR/context2.json" <<'EOF' | |
| { | |
| "messages": [ | |
| { | |
| "role": "assistant", | |
| "tool_calls": [ | |
| { | |
| "id": "call_1", | |
| "type": "function", | |
| "function": { | |
| "name": "fs_search", | |
| "arguments": "{\"pattern\":\"test\"}" | |
| } | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| EOF | |
| if ! cat "$TEST_DIR/context2.json" | jq -e '[.messages[]?.tool_calls[]? | select(.function.name == "sem_search")] | any' > /dev/null 2>&1; then | |
| echo "β Test 2 PASSED: Missing sem_search detected correctly" | |
| else | |
| echo "β Test 2 FAILED: False positive for sem_search" | |
| exit 1 | |
| fi | |
| echo | |
| # Test 3: Check that llm_judge.ts can be loaded | |
| echo "Test 3: Check that llm_judge.ts script loads..." | |
| if npx tsx "$SCRIPT_DIR/llm_judge.ts" 2>&1 | grep -q "Missing required arguments"; then | |
| echo "β Test 3 PASSED: llm_judge.ts script loads correctly" | |
| else | |
| echo "β Test 3 FAILED: llm_judge.ts script failed to load" | |
| exit 1 | |
| fi | |
| echo | |
| # Test 4: Check conditional execution logic | |
| echo "Test 4: Test conditional LLM judge execution..." | |
| cat > "$TEST_DIR/test_conditional.sh" <<'SCRIPT' | |
| #!/bin/bash | |
| if ! cat "$1" | jq -e '[.messages[]?.tool_calls[]? | select(.function.name == "sem_search")] | any' > /dev/null 2>&1; then | |
| echo "Skipping LLM judge: sem_search tool was not used" | |
| exit 0 | |
| fi | |
| echo "Would run LLM judge here" | |
| exit 0 | |
| SCRIPT | |
| chmod +x "$TEST_DIR/test_conditional.sh" | |
| # Test with sem_search present | |
| if output=$("$TEST_DIR/test_conditional.sh" "$TEST_DIR/context.json" 2>&1) && echo "$output" | grep -q "Would run LLM judge"; then | |
| echo "β Test 4a PASSED: Conditional runs LLM judge when sem_search present" | |
| else | |
| echo "β Test 4a FAILED: Conditional logic incorrect" | |
| exit 1 | |
| fi | |
| # Test with sem_search missing | |
| if output=$("$TEST_DIR/test_conditional.sh" "$TEST_DIR/context2.json" 2>&1) && echo "$output" | grep -q "Skipping LLM judge"; then | |
| echo "β Test 4b PASSED: Conditional skips LLM judge when sem_search missing" | |
| else | |
| echo "β Test 4b FAILED: Conditional logic incorrect" | |
| exit 1 | |
| fi | |
| echo | |
| # Cleanup | |
| rm -rf "$TEST_DIR" | |
| echo "======================================" | |
| echo "All validation tests PASSED β" | |
| echo "======================================" | |
| echo | |
| echo "Note: Full LLM judge testing requires Google Cloud authentication." | |
| echo "To set up authentication:" | |
| echo " 1. Run: gcloud auth application-default login" | |
| echo " 2. Or set GOOGLE_APPLICATION_CREDENTIALS to service account JSON path" | |