HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: /home/workzeni/agency-erp-05.workzenix.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();
    }
}