from logging import Logger
from typing import override

from test_automation_suite.benchmarks.benchmark import Benchmark
from test_automation_suite.core.context import Context
from test_automation_suite.core.task import Step, StepResult
from test_automation_suite.dependencies.dependency import Dependency
from test_automation_suite.dependencies.init_apt_dependencies import (
    mangohud_dependency,
)
from test_automation_suite.dependencies.init_unpack_dependencies import (
    cyberpunk_dependency,
)


class BenchmarkEdgeGaming(Benchmark):
    @override
    def dependencies(self) -> list[Dependency]:
        return [*super().dependencies(), mangohud_dependency, cyberpunk_dependency]

    @override
    def steps(self) -> list[Step]:
        return [*super().steps(), self.step_run]

    def step_run(self, _context: Context, logger: Logger) -> StepResult:
        logger.info("Edge Gaming benchmark is not implemented yet and returns dummy values.")
        return StepResult(
            success=True,
            harvest_data={
                "min FPS": 12,
                "median FPS": 60,
                "max FPS": 99,
            },
        )
