import requests, json, base64, os base = 'http://127.0.0.1:8002' print('Health ->', requests.get(base + '/api/v1/health').json()) # Diagram JSON body = { 'refrigerant': 'R290', 'pressure_range': {'min': 0.1, 'max': 10.0}, 'format': 'json', 'include_isotherms': True, 'width': 800, 'height': 600, 'dpi': 100 } print('\nRequesting diagram JSON...') r = requests.post(base + '/api/v1/diagrams/ph', json=body, timeout=120) print('Status', r.status_code) try: j = r.json() print('Keys in response:', list(j.keys())) if 'data' in j: print('Saturation curve length:', len(j['data'].get('saturation_curve', []))) except Exception as e: print('Failed to parse JSON:', e, r.text[:200]) # Diagram PNG body['format'] = 'png' print('\nRequesting diagram PNG...') r2 = requests.post(base + '/api/v1/diagrams/ph', json=body, timeout=120) print('Status', r2.status_code) try: j2 = r2.json() print('Keys in response:', list(j2.keys())) if 'image' in j2: img_b64 = j2['image'] os.makedirs('test_outputs', exist_ok=True) path = os.path.join('test_outputs','docker_sample_diagram.png') with open(path, 'wb') as f: f.write(base64.b64decode(img_b64)) print('Saved PNG to', path) except Exception as e: print('Failed to parse PNG response:', e, r2.text[:200]) # Simple cycle (pressure mode) print('\nRequesting simple cycle (pressure mode)...') cycle_body = { 'refrigerant': 'R290', 'evap_pressure': 0.2, # bar 'cond_pressure': 6.0, # bar 'superheat': 5.0, 'subcool': 2.0, 'mass_flow': 0.1 } r3 = requests.post(base + '/api/v1/cycles/simple', json=cycle_body, timeout=120) print('Status', r3.status_code) try: print('Simple cycle keys:', list(r3.json().keys())) except Exception as e: print('Failed to parse cycle response:', e, r3.text[:200]) # Simple cycle (temperature mode) print('\nRequesting simple cycle (temperature mode)...') cycle_body2 = { 'refrigerant': 'R290', 'evap_temperature': -10.0, 'cond_temperature': 40.0, 'superheat': 5.0, 'subcool': 2.0, 'mass_flow': 0.1 } r4 = requests.post(base + '/api/v1/cycles/simple', json=cycle_body2, timeout=120) print('Status', r4.status_code) try: j4 = r4.json() print('Keys:', list(j4.keys())) if 'performance' in j4: print('COP:', j4['performance'].get('cop')) except Exception as e: print('Failed to parse cycle temp response:', e, r4.text[:200])