festbench-web/database/factories/ScenarioRunFactory.php

41 lines
1.9 KiB
PHP

<?php
namespace Database\Factories;
use App\Models\BenchmarkRun;
use App\Models\ScenarioRun;
use Illuminate\Database\Eloquent\Factories\Factory;
/** @extends Factory<ScenarioRun> */
class ScenarioRunFactory extends Factory
{
public function definition(): array
{
$passed = $this->faker->boolean(60);
return [
'benchmark_run_id' => BenchmarkRun::factory(),
'ran_at' => now(),
'scenario' => $this->faker->randomElement(['kubelet_config_repair', 'deployment_unschedulable', 'systemd_unit_repair']),
'level' => $this->faker->randomElement(['off', 'low', 'medium', 'xhigh']),
'ok' => $passed,
'outcome' => $passed ? 'passed' : $this->faker->randomElement(['rejected_final', 'timeout', 'turn_cap', 'livelock', 'error']),
'wall' => round($this->faker->randomFloat(1, 30, 600), 1),
'turns' => $this->faker->numberBetween(5, 80),
'commands' => $this->faker->numberBetween(4, 75),
'repeats' => $this->faker->numberBetween(0, 10),
'submissions' => $this->faker->numberBetween(1, 5),
'rejected' => $this->faker->numberBetween(0, 4),
't_first_sub' => round($this->faker->randomFloat(1, 20, 500), 1),
'n_first_sub' => $this->faker->numberBetween(3, 70),
't_pass' => $passed ? round($this->faker->randomFloat(1, 30, 550), 1) : null,
'n_pass' => $passed ? $this->faker->numberBetween(3, 75) : null,
'gen_tokens' => $this->faker->numberBetween(500, 20000),
'vis_tokens' => $this->faker->numberBetween(400, 19000),
'rea_tokens' => $this->faker->numberBetween(0, 5000),
'verdicts' => [['n' => 1, 'at' => 264.1, 'accepted' => $passed, 'oracle' => 'sample']],
'detail' => $passed ? 'passed on submission 1' : 'never accepted',
'payload' => ['ok' => $passed],
];
}
}