from typing import TypeAlias

from test_automation_suite.benchmarks.benchmark_edge_gaming import BenchmarkEdgeGaming
from test_automation_suite.benchmarks.benchmark_furmark import BenchmarkFurmark
from test_automation_suite.benchmarks.benchmark_gpu_usage_idle import BenchmarkGpuUsageIdle
from test_automation_suite.benchmarks.benchmark_gravitymark import BenchmarkGravitymark
from test_automation_suite.checks.check_all_dkms_installed import CheckAllDkmsInstalled
from test_automation_suite.checks.check_bluetooth import CheckBluetooth
from test_automation_suite.checks.check_lan import CheckLan
from test_automation_suite.checks.check_suspends import CheckSuspends
from test_automation_suite.checks.check_tccd_cpu_temperature import CheckTccdCpuTemperature
from test_automation_suite.checks.check_wifi import CheckWifi
from test_automation_suite.core.task import Task

Procedure: TypeAlias = list[Task]

security_kernel = [
    CheckLan(),
    CheckWifi(),
    CheckBluetooth(),
    CheckTccdCpuTemperature(),
    CheckAllDkmsInstalled(),
    CheckSuspends(),
]

nvidia = [
    CheckAllDkmsInstalled(),
    CheckSuspends(),
    BenchmarkGpuUsageIdle(),
    BenchmarkFurmark(),
    BenchmarkGravitymark(),
    BenchmarkEdgeGaming(),
]

procedures_by_name: dict[str, Procedure] = {
    "TestSecurityKernel": security_kernel,
    "TestNvidia": nvidia,
}
