Фильтр каталога: правильное количество ещё не означает правильный порядок

Фактические данные получены через расширение interbase от отдельной локальной базы Firebird. Собственные учебные объекты удалены после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Параметров у SELECT2
Перепутанные границы3000 → 1000
Строк при неверном порядке0
Границы после сопоставления1000 → 3000
Коды показанных товаров2, 4
ТоварыКабель / Держатель
Цены в копейках1200, 3000
Строки и дополнительные наблюдения
{
    "form": {
        "max_kopecks": 3000,
        "min_kopecks": 1000
    },
    "wrong_parameters": [
        3000,
        1000
    ],
    "correct_parameters": [
        1000,
        3000
    ],
    "selected": [
        {
            "id": 2,
            "title": "Кабель",
            "price": 1200
        },
        {
            "id": 4,
            "title": "Держатель",
            "price": 3000
        }
    ],
    "sql_filters": [
        "price_kopecks >= minimum",
        "price_kopecks <= maximum",
        "stock > 0"
    ],
    "sql_order": "price_kopecks, item_id",
    "sql_limit": 10
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.