src/PeekAndPoke/Component/Formal/Validation/ResultsIn.php
public static function multipleOf($base, $message = null)
    {
        if ($message === null) {
            $message = "Value must be multiple of $base";
        }

        // TODO: [PSI] create a predicate IsMultipleOf in the psi library
        $predicate = function ($value) use ($base) {
            /** @noinspection UnnecessaryCastingInspection */
            return fmod((float) $value, (float) $base) === (float) 0.0;
        };

        return new ResultsIn\OutcomeRule($predicate, $message);
    }
public static function multipleOf($base, $message = null)
    {
        if ($message === null) {
            $message = "Value must be multiple of $base";
        }

        // TODO: [PSI] create a predicate IsMultipleOf in the psi library
        $predicate = function ($value) use ($base) {
            /** @noinspection UnnecessaryCastingInspection */
            return fmod((float) $value, (float) $base) === (float) 0.0;
        };

        return new ResultsIn\OutcomeRule($predicate, $message);
    }
@param float       $base
@param string|null $message

@return ResultsIn\OutcomeRule