#!/bin/bash

# 获取脚本所在的绝对路径，确保后续引用都正确
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"

# 可执行文件和结果根目录都基于 SCRIPT_DIR
EXECUTABLE="${SCRIPT_DIR}/bin/speedtest"
RESULTS_ROOT="${SCRIPT_DIR}/results"

# --- 测试配置 ---

# 测试类型
names=('dos')

# 固定参数
B_VALUES=(1 0)
E_VALUES=(0)

# 要测试的 t 值
#T_VALUES=(64 128 256 512 1024 2048 4096)
T_VALUES=(4096)

# 【新】直接预设所有要测试的 seed 值
SEED_VALUES=(50000 25000 10000 5000 2500) # 您可以在这里添加或修改任意seed值

# --- 脚本主体 ---

# 确保结果根目录存在
mkdir -p "$RESULTS_ROOT"

for name in "${names[@]}"; do
  for t in "${T_VALUES[@]}"; do
    # 为当前 t 建一级目录
    outdir="${RESULTS_ROOT}/${name}/t${t}"
    mkdir -p "$outdir"

    # 更新了这里的日志输出，直接显示将要运行的seed列表
    echo "=== test=${name}, t=${t}: will run seeds: ${SEED_VALUES[*]} ==="

    for b in "${B_VALUES[@]}"; do
      for e in "${E_VALUES[@]}"; do
        # 【修改】直接遍历预设的 SEED_VALUES 数组
        for seed in "${SEED_VALUES[@]}"; do
          TEST_NAME="${name}_b${b}_e${e}_t${t}_s${seed}"
          LOG_FILE="${outdir}/${TEST_NAME}.out"
          MEM_FILE="${outdir}/${TEST_NAME}.mem"

          echo "  -> b=${b}, e=${e}, seed=${seed}"
          (
            cd "$outdir"
            # /usr/bin/time 命令保持不变，现在使用来自新循环的 $seed
            /usr/bin/time -v "$EXECUTABLE" "${name}_tbg" "$b" "$e" "$t" "$seed"
          ) \
            1> "$LOG_FILE" \
            2> "$MEM_FILE"
        done
      done
    done

    echo
  done
done

echo "All tests completed. Results in ${RESULTS_ROOT}/"
