<commit_before><?hh // strict

namespace HackPack\HackUnit;

final class Assert implements Contract\Assert
{
    public static function build(
        Vector<Event\FailureListener> $failureListeners,
        Vector<Event\SkipListener> $skipListeners,
        Vector<Event\SuccessListener> $successListeners,
    ) : this
    {
        return new static($failureListeners, $skipListeners, $successListeners);
    }
    public function __construct(
        private Vector<Event\FailureListener> $failureListeners,
        private Vector<Event\SkipListener> $skipListeners,
        private Vector<Event\SuccessListener> $successListeners,
    )
    {
    }

    public function bool(bool $context) : Contract\Assertion\BoolAssertion
    {
        return new Assertion\BoolAssertion($context, $this->failureListeners, $this->successListeners);
    }

    public function int(int $context) : Contract\Assertion\NumericAssertion<int>
    {
        return new Assertion\NumericAssertion($context, $this->failureListeners, $this->successListeners);
    }

    public function float(float $context) : Contract\Assertion\NumericAssertion<float>
    {
        return new Assertion\NumericAssertion($context, $this->failureListeners, $this->successListeners);
    }

    public function string(string $context) : Contract\Assertion\StringAssertion
    {
        return new Assertion\StringAssertion($context, $this->failureListeners, $this->successListeners);
    }

    public function whenCalled((function():void) $context) : Contract\Assertion\CallableAssertion
    {
        return new Assertion\CallableAssertion($context, $this->failureListeners, $this->successListeners);
    }

    public function mixed(mixed $context) : Contract\Assertion\MixedAssertion
    {<commit_msg>Simple factory methods don't need to be tested.<commit_after><?hh // strict

namespace HackPack\HackUnit;

final class Assert implements Contract\Assert
{
    <<nocover>>
    public static function build(
        Vector<Event\FailureListener> $failureListeners,
        Vector<Event\SkipListener> $skipListeners,
        Vector<Event\SuccessListener> $successListeners,
    ) : this
    {
        return new static($failureListeners, $skipListeners, $successListeners);
    }

    <<nocover>>
    public function __construct(
        private Vector<Event\FailureListener> $failureListeners,
        private Vector<Event\SkipListener> $skipListeners,
        private Vector<Event\SuccessListener> $successListeners,
    )
    {
    }

    <<nocover>>
    public function bool(bool $context) : Contract\Assertion\BoolAssertion
    {
        return new Assertion\BoolAssertion($context, $this->failureListeners, $this->successListeners);
    }

    <<nocover>>
    public function int(int $context) : Contract\Assertion\NumericAssertion<int>
    {
        return new Assertion\NumericAssertion($context, $this->failureListeners, $this->successListeners);
    }

    <<nocover>>
    public function float(float $context) : Contract\Assertion\NumericAssertion<float>
    {
        return new Assertion\NumericAssertion($context, $this->failureListeners, $this->successListeners);
    }

    <<nocover>>
    public function string(string $context) : Contract\Assertion\StringAssertion
    {
        return new Assertion\StringAssertion($context, $this->failureListeners, $this->successListeners);
    }

    <<nocover>>
    public function whenCalled((function():void) $context) : Contract\Assertion\CallableAssertion
    {
        return new Assertion\CallableAssertion($context, $this->failureListeners, $this->successListeners);
    }

    <<nocover>>
    public function mixed(mixed $context) : Contract\Assertion\MixedAssertion
    {
{'fraction_non_alphanumeric': 0.10591731964333964, 'fraction_numerical': 0.0, 'mean_word_length': 3.83289817232376, 'pattern_counts': {'":': 0, '<': 37, '<?xml version=': 0, '>': 55, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '712198', 'n_tokens_mistral': 981, 'n_tokens_neox': 1012, 'n_words': 199}