const fs = require('fs'); const path = require('path'); const { execFileSync } = require('child_process'); const PROJECT_PATH = process.cwd() const TEST_PATH = path.join(__dirname, '.'); const SOURCE_DIR = path.join(__dirname,'data', 'screenShots'); const TARGET_DIR = path.join(__dirname,'data', 'screenshots', '1778819665744_detection_singleTest_testResults'); const PYTHON_CMD = process.platform === 'win32' ? 'python' : 'python3'; const TEST_SETUP_FILE = path.join(TEST_PATH, 'data', '0_testSetup.json'); const SCRIPT_FILE = path.join(PROJECT_PATH, 'programs', '1_detect_aruco_observations.py'); const ROBOT_PATH = path.join(__dirname, 'data', 'robot', 'robot.json'); const SCRIPT_FILE_2 = path.join(PROJECT_PATH, 'programs', '2_estimate_camera_pose_from_aruco_json.py'); const SCRIPT_FILE_3 = path.join(PROJECT_PATH, 'programs', '3_fuse_markers_world.py'); const cam = { id : 'cam1', image: 'snapshot_video1_1779690911822.jpg', intrinsics: path.join(PROJECT_PATH, 'data', 'settings','callibration_cam0.npz') }; const cam2 = { id : 'cam1', image: 'snapshot_video0_1779690911822.jpg', intrinsics: path.join(PROJECT_PATH, 'data', 'settings','callibration_cam0.npz') }; describe('Check if Python 2 runs', () => { test('First Run of Python second script', () => { console.log('Intrinsics : ', cam.intrinsics); execFileSync(PYTHON_CMD, [ SCRIPT_FILE, '-i', path.join(SOURCE_DIR, cam.image), '-npz', cam.intrinsics, '-robot', ROBOT_PATH, '-cameraId', cam.id , '-outDir', TARGET_DIR ], { stdio: 'inherit', cwd: SOURCE_DIR // <- wichtig }); const resultFile = path.join(TARGET_DIR, 'snapshot_video1_1779690911822_aruco_detection.json'); if (!fs.existsSync(resultFile)) { throw new Error(`Erwartete Datei fehlt: ${resultFile}`); } console.log('Intrinsics : ', cam.intrinsics); execFileSync(PYTHON_CMD, [ SCRIPT_FILE_2, '--detections' , resultFile, '--robots', ROBOT_PATH ], { stdio: 'inherit', cwd: SOURCE_DIR // <- wichtig }); }); test('Second File Run of Python second script', () => { console.log('Intrinsics : ', cam.intrinsics); execFileSync(PYTHON_CMD, [ SCRIPT_FILE, '-i', path.join(SOURCE_DIR, cam2.image), '-npz', cam.intrinsics, '-robot', ROBOT_PATH, '-cameraId', cam2.id , '-outDir', TARGET_DIR ], { stdio: 'inherit', cwd: SOURCE_DIR // <- wichtig }); const resultFile = path.join(TARGET_DIR, 'snapshot_video0_1779690911822_aruco_detection.json'); if (!fs.existsSync(resultFile)) { throw new Error(`Erwartete Datei fehlt: ${resultFile}`); } console.log('Intrinsics : ', cam.intrinsics); execFileSync(PYTHON_CMD, [ SCRIPT_FILE_2, '--detections' , resultFile, '--robots', ROBOT_PATH ], { stdio: 'inherit', cwd: SOURCE_DIR // <- wichtig }); }); test('Second File Run of Python second script', () => { console.log('Intrinsics : ', cam.intrinsics); execFileSync(PYTHON_CMD, [ SCRIPT_FILE_3, '--json', path.join(TARGET_DIR, 'snapshot_video0_1779690911822_aruco_detection.camera_pose.json'), '--json', path.join(TARGET_DIR, 'snapshot_video1_1779690911822_aruco_detection.camera_pose.json'), '--robots', ROBOT_PATH ], { stdio: 'inherit', cwd: SOURCE_DIR // <- wichtig }); }); /* // ✅ Cleanup läuft IMMER nach jedem Test afterEach(() => { if (!fs.existsSync(TARGET_DIR)) return; fs.readdirSync(TARGET_DIR).forEach(file => { fs.rmSync(path.join(TARGET_DIR, file), { recursive: true, force: true }); }); }); */ });