49 lines
2.5 KiB
Python
49 lines
2.5 KiB
Python
import urllib.request
|
|
import json
|
|
import re
|
|
|
|
batch_9_results = [
|
|
{"url": "https://howdoyouconvert.com/calculator/meters-per-second-to-feet-per-second/?ao_noptimize=1", "v1": 1, "expected_v2": 3.28084, "m": 3.28084},
|
|
{"url": "https://howdoyouconvert.com/calculator/meters-per-second-to-miles-per-hour/?ao_noptimize=1", "v1": 10, "expected_v2": 22.3694, "m": 2.23694},
|
|
{"url": "https://howdoyouconvert.com/calculator/meters-per-second-to-yards-per-second/?ao_noptimize=1", "v1": 1, "expected_v2": 1.09361, "m": 1.09361},
|
|
{"url": "https://howdoyouconvert.com/calculator/micrograms-to-milligrams/?ao_noptimize=1", "v1": 1000, "expected_v2": 1, "m": 0.001},
|
|
{"url": "https://howdoyouconvert.com/calculator/micrometers-to-millimeters/?ao_noptimize=1", "v1": 1000, "expected_v2": 1, "m": 0.001},
|
|
{"url": "https://howdoyouconvert.com/calculator/milligrams-to-micrograms/?ao_noptimize=1", "v1": 1, "expected_v2": 1000, "m": 1000.0},
|
|
{"url": "https://howdoyouconvert.com/calculator/milliliters-to-liters/?ao_noptimize=1", "v1": 1000, "expected_v2": 1, "m": 0.001},
|
|
{"url": "https://howdoyouconvert.com/calculator/milliliters-to-fluid-ounces/?ao_noptimize=1", "v1": 100, "expected_v2": 3.3814, "m": 0.033814},
|
|
{"url": "https://howdoyouconvert.com/calculator/millimeters-to-centimeters/?ao_noptimize=1", "v1": 10, "expected_v2": 1, "m": 0.1},
|
|
{"url": "https://howdoyouconvert.com/calculator/millimeters-to-inches/?ao_noptimize=1", "v1": 25.4, "expected_v2": 1, "m": 0.0393701}
|
|
]
|
|
|
|
headers = {"User-Agent": "Mozilla/5.0"}
|
|
|
|
for calc in batch_9_results:
|
|
print(f"\n--- Verifying {calc['url']} ---")
|
|
req = urllib.request.Request(calc['url'], headers=headers)
|
|
try:
|
|
resp = urllib.request.urlopen(req, timeout=30).read().decode("utf-8")
|
|
|
|
# Check for robust JS
|
|
if "initRetries" in resp and "setTimeout(init, 100)" in resp:
|
|
print("Robust JS: OK")
|
|
else:
|
|
print("Robust JS: MISSING")
|
|
|
|
# Extract multiplier
|
|
m_pattern = r'i2\.value = parseFloat\(\(v \* ([\d\.e\-]+)\)'
|
|
m = re.search(m_pattern, resp)
|
|
if m:
|
|
actual_m = float(m.group(1))
|
|
print(f"Multiplier: {actual_m} (Expected {calc['m']})")
|
|
if abs(actual_m - calc['m']) / (calc['m'] or 1) < 0.000001:
|
|
print("Math Match: OK")
|
|
else:
|
|
print("Math Match: FAIL")
|
|
else:
|
|
print("Multiplier: NOT FOUND")
|
|
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
|
|
print("\nVERIFICATION COMPLETE")
|