#!/bin/bash

set -euo pipefail

EXECUTION_CONFIG="${1:-}"

if [[ -z "$EXECUTION_CONFIG" ]]; then
    echo "Usage: bash run_all.sh <execution_config>"
    exit 1
fi

# --- Run Scaling ---
echo "--- Run Scaling ---"
python scaling.py strong "$EXECUTION_CONFIG"
python scaling.py weak "$EXECUTION_CONFIG"

# --- Run Comparison Tests ---
echo "--- Run Comparison Tests ---"
python comparison_tests.py "$EXECUTION_CONFIG"

# --- Run Stream Analysis ---
echo "--- Run Stream Analysis ---"
python stream_test.py stream_config/stream_ad_kmeans_ddask.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_kmeans_ddask-frozen.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_clust_kmeans_dask.json "$EXECUTION_CONFIG"

python stream_test.py stream_config/stream_clust_sdoclust_dask.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_sdo_dask.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_sdo-frozen_dask.json "$EXECUTION_CONFIG"

python stream_test.py stream_config/stream_clust_mbkmeans.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_iforest.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_iforest-frozen.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_clust_sdoclust_numpy.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_sdo-frozen_numpy.json "$EXECUTION_CONFIG"
python stream_test.py stream_config/stream_ad_sdo_numpy.json "$EXECUTION_CONFIG"

#python stream_test.py stream_config/stream_clust_fast-hdbscan.json "$EXECUTION_CONFIG" # collapses / freezes

echo "--- Done ---"
