protected static function createCorrectRational($num, $den)
    {

        if (self::getRequiredType() == self::TYPE_GMP) {
            // @codeCoverageIgnoreStart
            return new GMPRationalType(new GMPIntType($num), new GMPIntType($den));
            // @codeCoverageIgnoreEnd
        }
        
        return new RationalType(new IntType($num), new IntType($den));
    }