Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2021, 18:21   #1
Adam77
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 37
По умолчанию Не видит исключение - Должно срабатывать исключение, если какой-либо из элементов массива не является типом int.

Здравствуйте, такая проблема, не могу понять в чем дело. Есть файл index.php, где реализована сортировка и файл для проведения тестов test.class.php.
Должно срабатывать исключение, если какой-либо из элементов массива не является типом int.
А у меня срабатывает исключение только если первый элемент массива не int, если какой-либо другой, то исключение не срабатывает почему-то, не могу понять почему.

index.php
Код:
<?php

class MySort
{
    public static function BubbleSort($array = []) {

        for ($j = 0; $j < count($array); $j++){
            if (!is_int($array[$j]))
            {
                throw new InvalidArgumentException('Формат элементов массива должен быть типа integer');
            }
 
            }
            for ($i = 0; $i < count($array) - $j - 1; $i++){

                if ($array[$i] > $array[$i + 1]){

                    $tmp_var = $array[$i + 1];
                    $array[$i + 1] = $array[$i];
                    $array[$i] = $tmp_var;
                }
            }
        }
        return $array;
    }
}
test.class.php
Код:
<?php
require 'index.php';
use PHPUnit\Framework\TestCase;


class TestSort extends PHPUnit\Framework\TestCase
{
    public function test_BubbleSort()
    {
        $result = MySort::BubbleSort([11, 0, 62, 9, 42, 5, 2, 31, 88, 7]);
        $this->assertEquals([0, 2, 5, 7, 9, 11, 31, 42, 62, 88],$result,'Неверный результат сортировки');

        try {
            MySort::BubbleSort([11, 'dsda', 62, 9, 42, 5, 2, 31, 88, 7]);
        } catch (\InvalidArgumentException $e) {
            echo $e->getMessage(). "\n";
        }
    }
}
Adam77 вне форума Ответить с цитированием
Старый 22.03.2021, 09:07   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,142
По умолчанию

Как-то визуально в MySort скобок разное количество
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Explorer.exe Исключение неизвестное программное исключение Windows XP, что делать? Igorilla Windows 6 02.04.2013 21:49
Исключение неизвестное программное исключение... Host-2013 Паскаль, Turbo Pascal, PascalABC.NET 19 09.02.2013 20:30
исключение элементов из списка sahsa-m37 Помощь студентам 1 25.05.2011 22:03
исключение из массива. Arcueid1691 Общие вопросы C/C++ 2 24.11.2009 00:54
исключение эл-ов из массива Arcueid1691 Общие вопросы C/C++ 9 08.10.2009 19:11


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS