Files
troupe-standup/verify_wordcount.py

40 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""Verification test for wordcount.py - must match wc output exactly."""
import subprocess
import sys
import tempfile
import os
# Create test file with known content
test_content = "Hello world\nThis is a test file\nWith three lines\n"
test_file = "/root/troupe-standup/test_verification.txt"
with open(test_file, 'w') as f:
f.write(test_content)
# Get wc output
wc_result = subprocess.run(['wc', test_file], capture_output=True, text=True)
wc_lines, wc_words, wc_chars = map(int, wc_result.stdout.strip().split()[:3])
# Get wordcount.py output
pyc_result = subprocess.run(
['python3', '/root/.hermes/wizard-outputs/spark/wordcount.py', test_file],
capture_output=True, text=True
)
if pyc_result.returncode != 0:
print(f"FAIL: wordcount.py returned {pyc_result.returncode}")
print(pyc_result.stderr)
sys.exit(1)
parts = pyc_result.stdout.strip().split()
py_lines, py_words, py_chars = int(parts[0]), int(parts[1]), int(parts[2])
print(f"wc: {wc_lines} lines, {wc_words} words, {wc_chars} chars")
print(f"wordcount.py: {py_lines} lines, {py_words} words, {py_chars} chars")
if (wc_lines == py_lines and wc_words == py_words and wc_chars == py_chars):
print("PASS: outputs match")
sys.exit(0)
else:
print("FAIL: outputs do not match")
sys.exit(1)