975a15b9e7dd1b11d7b45df948ead90d18c2fd50
All checks were successful
Array Queue Test / test (push) Successful in 25s
Clojure Linear Test / test (push) Successful in 14s
Exception Test / test (push) Successful in 1m24s
Generic Test / test (push) Successful in 46s
JavaScript Expressions Test / test (push) Successful in 38s
JavaScript Objective Expressions Test / test (push) Successful in 2m50s
JavaScript Prefix Test / test (push) Successful in 2m50s
Queues Test / test (push) Successful in 21s
Binary Search Test / test (push) Successful in 14s
Table of Contents
- Тесты к курсу «Парадигмы программирования»
- Домашнее задание 9. Линейная алгебра на Clojure Clojure Linear Tests
- Домашнее задание 8. Обработка ошибок на JavaScript JavaScript Prefix Tests
- Домашнее задание 7. Объектные выражения на JavaScript JavaScript Objective Expressions Tests
- Домашнее задание 6. Функциональные выражения на JavaScript JavaScript Expressions Tests
- Домашнее задание 5. Вычисления в различных типах Generic Tests
- Домашнее задание 4. Очереди Queues Tests
- Домашнее задание 3. Очередь на массиве ArrayQueue Tests
- Домашнее задание 2. Бинарный поиск BinarySearch Tests
- Домашнее задание 1. Обработка ошибок Exception Tests
Тесты к курсу «Парадигмы программирования»
Домашнее задание 9. Линейная алгебра на Clojure 
Модификации
- Базовая ✅
- Код должен находиться в файле
clojure-solutions/linear.clj. - Исходный код тестов
- Запускать с указанием сложности (
easyилиhard) и модификации.
- Запускать с указанием сложности (
- Код должен находиться в файле
Домашнее задание 8. Обработка ошибок на JavaScript 
Модификации
- Base ✅
- Код должен находиться в файле
javascript-solutions/objectExpression.js. - Исходный код тестов
- Запускать с указанием модификации и сложности (
easyилиhard).
- Запускать с указанием модификации и сложности (
- Код должен находиться в файле
- Postfix. ✅ Дополнительно реализовать поддержку:
- Выражений в постфиксной записи:
(2 3 +)равно 5- функция
parsePostfix - метод
postfix
- Исходный код тестов
- Запускать с указанием модификации и сложности (
easyилиhard).
- Запускать с указанием модификации и сложности (
- Выражений в постфиксной записи:
- 3637. ✅ Дополнительно реализовать поддержку:
- постфиксной записи;
- разных видов скобок: квадратных (
[]), фигурных ({}), угловых (<>); - операций произвольного числа аргументов:
SumExp(sumExp) – сумма экспонент,(sumExp 2 3 16)примерно равно 8886137;Lse(lse) – LogSumExp,(lse 2 3 16)примерно равно 16.
- 3839. ✅ Дополнительно реализовать поддержку:
- постфиксной записи;
- разных видов скобок: квадратных (
[]), фигурных ({}), угловых (<>). - операций произвольного числа аргументов:
SumExp(sumExp) – сумма экспонент,(sumExp 2 3 16)примерно равно 8886137;Lme(lme) – логарифма среднего экспонент,(lme 2 7 9)примерно равно 8.
- 3435. ✅ Дополнительно реализовать поддержку:
- разных видов скобок: квадратных (
[]), фигурных ({}), угловых (<>), французские кавычки («»). - операций произвольного числа аргументов:
MeanExp(meanExp) – среднее экспонент,(meanExp 2 4 15)примерно равно 1089693.
- разных видов скобок: квадратных (
- 3233. ✅ Дополнительно реализовать поддержку:
- разных видов скобок: квадратных (
[]), фигурных ({}), угловых (<>), французские кавычки («»). - операций одного или двух аргументов:
ArcTan12(atan12) – арктангенс,(atan12 1256)примерно равно 1.57,(atan12 841 540)примерно равно 1.
- разных видов скобок: квадратных (
Домашнее задание 7. Объектные выражения на JavaScript 
Модификации
- Base ✅
- Код должен находиться в файле
javascript-solutions/objectExpression.js. - Исходный код тестов
- Запускать с указанием модификации и сложности (
easy,hardилиbonus).
- Запускать с указанием модификации и сложности (
- Код должен находиться в файле
- Simplify. ✅ С проверкой упрощений.
- 3637. ✅ Дополнительно реализовать поддержку:
- бинарных функций:
Power(pow) – возведение в степень,2 3 powравно 8;Log(log) – логарифм абсолютного значения аргумента по абсолютному значению основания-2 -8 logравно 3.
- функций от
Nаргументов дляN=1..5:SumN(sumN) – сумма аргументов,1 2 3 4 5 sum5равно 15.
- бинарных функций:
- 3839. ✅ Дополнительно реализовать поддержку:
- функций:
Gauss(gauss) – функция Гаусса; от четырех аргументов:a,b,c,x.
- функций от
Nаргументов дляN=1..5:SumN(sumN) – сумма аргументов,1 2 3 4 5 sum5равно 15.AvgN(avgN) – арифметическое среднее аргументов,1 2 3 4 5 avg5равно 3.
- функций:
- 3435. ✅ Дополнительно реализовать поддержку функций:
Wrap(wrap) – функции wrap(x, min, max),3 5 8 wrapравно 6;SoftWrap(softWrap) – сглаженного аналогаwrap:
softWrap(x, min, max, λ) = arcsin(cos(a) * tanh(λ * -sin(a))) * (max - min) / π + (max + min) / 2,
где a = π * (x - min) / (max - min)3 5 8 0.5 softWrapпримерно равно 6.3.
- 3233. ✅ Дополнительно реализовать поддержку функций:
Wrap(wrap) – функции wrap(x, min, max),3 5 8 wrapравно 6.
Домашнее задание 6. Функциональные выражения на JavaScript 
Модификации
- Базовая ✅
- Код должен находиться в файле
javascript-solutions/functionalExpression.js. - Исходный код тестов
- Запускать с аргументом
hardилиeasy.
- Запускать с аргументом
- Код должен находиться в файле
- 3637. ✅ Дополнительно реализовать поддержку:
- переменных:
y,z; - констант:
one– 1,two– 2,three– 3; - операций:
clamp– функции clamp(x, min, max),3 5 8 clampравно 5;wrap– функции wrap(x, min, max),3 5 8 wrapравно 6.argMin3– индекс минимального из трёх аргументов,3 4 1 argMin3равно 2;argMax3– индекс максимального из трёх аргументов,3 4 1 argMax3равно 1;argMin5– индекс минимального из пяти аргументов,3 4 1 5 6 argMin5равно 2;argMax5– индекс максимального из пяти аргументов,3 4 10 5 6 argMax5равно 2.
- переменных:
- 3839. ✅ Дополнительно реализовать поддержку:
- переменных:
y,z; - констант:
one– 1,two– 2,three– 3; - операций:
clamp– функции clamp(x, min, max),3 5 8 clampравно 5;softClamp– сглаженного аналогаclamp:
softClamp(x, min, max, λ) = min + (max - min) / (1 + exp(λ((max + min) / 2 - x))),
3 5 8 0.2 softClampпримерно равно 6.argMin3– индекс минимального из трёх аргументов,3 4 1 argMin3равно 2;argMax3– индекс максимального из трёх аргументов,3 4 1 argMax3равно 1;argMin5– индекс минимального из пяти аргументов,3 4 1 5 6 argMin5равно 2;argMax5– индекс максимального из пяти аргументов,3 4 10 5 6 argMax5равно 2.
- переменных:
- 3435. ✅ Дополнительно реализовать поддержку:
- переменных:
y,z; - констант:
one– 1,two– 2,three– 3; - операций:
arcTan(atan) – унарный арктангенс,1256 atanпримерно равно 1.57;arcTan2(atan2) – бинарный арктангенс,841 540 atan2примерно равно 1.
- переменных:
- 3233. ✅ Дополнительно реализовать поддержку:
- переменных:
y,z; - констант:
one– 1,two– 2,three– 3; - операций:
sin– синус,3.14159265 sinпримерно равно 0;cos– косинус,3.14159265 cosпримерно равно -1.
- переменных:
Домашнее задание 5. Вычисления в различных типах 
Модификации
- Base ✅
- Класс
GenericTabulatorдолжен реализовывать интерфейс Tabulator и строить трёхмерную таблицу значений заданного выражения.mode– режим вычислений:i– вычисления вintс проверкой на переполнение;d– вычисления вdoubleбез проверки на переполнение;bi– вычисления вBigInteger.
expression– выражение, для которого надо построить таблицу;x1,x2– минимальное и максимальное значения переменнойx(включительно)y1,y2,z1,z2– аналогично дляyиz.- Результат: элемент
result[i][j][k]должен содержать значение выражения дляx = x1 + i,y = y1 + j,z = z1 + k. Если значение не определено (например, по причине переполнения), то соответствующий элемент должен быть равенnull.
- Исходный код тестов
- Первый аргумент:
easyилиhard - Последующие аргументы: модификации
- Первый аргумент:
- Класс
- 3637 ✅ Дополнительно реализуйте:
- Унарные операции:
count– число установленных битов,count 5равно 2.
- Бираные операции (минимальный приоритет):
min– минимум,2 min 3равно 2;max– максимум,2 max 3равно 3.
- Поддержку режимов:
u– вычисления вintбез проверки на переполнение;s– вычисления вshortбез проверки на переполнение;f– вычисления вfloatбез проверки на переполнение.
- Унарные операции:
- 3839 ✅ Дополнительно реализуйте:
- Унарные операции:
count– число установленных битов,count 5равно 2.
- Бинарные операции (минимальный приоритет):
min– минимум,2 min 3равно 2;max– максимум,2 max 3равно 3.
- Поддержку режимов:
u– вычисления вintбез проверки на переполнение;s– вычисления вshortбез проверки на переполнение;t– вычисления вintбез проверки на переполнение с отбрасыванием остатка от деления на 10.
- Унарные операции:
- 3435 ✅ Дополнительно реализуйте:
- Унарные операции:
count– число установленных битов,count 5равно 2.
- Бинарные операции (минимальный приоритет):
min– минимум,2 min 3равно 2;max– максимум,2 max 3равно 3.
- Поддержку режимов:
u– вычисления вintбез проверки на переполнение;
- Унарные операции:
- 3233 ✅ Дополнительно реализуйте поддержку режимов:
u– вычисления вintбез проверки на переполнение;s– вычисления вshortбез проверки на переполнение;f– вычисления вfloatбез проверки на переполнение.
Домашнее задание 4. Очереди 
Модификации
- Базовая ✅
- Исходный код тестов
- Откомпилированные тесты
- Для работы тестов необходимо добавить опцию JVM
--add-opens java.base/java.util=ALL-UNNAMED
- 3637 ✅
- Добавить в интерфейс очереди и реализовать методы
contains(element)– проверяет, содержится ли элемент в очередиremoveFirst(element)– удаляет первое вхождение элемента в очередь и возвращает было ли такое
- Дублирования кода быть не должно
- Добавить в интерфейс очереди и реализовать методы
- 3839 ✅
- Добавить в интерфейс очереди и реализовать методы
getNth(n)– создать очередь, содержащую каждый n-й элемент, считая с 1removeNth(n)– создать очередь, содержащую каждый n-й элемент, и удалить их из исходной очередиdropNth(n)– удалить каждый n-й элемент из исходной очереди
- Тип возвращаемой очереди должен соответствовать типу исходной очереди
- Дублирования кода быть не должно
- Добавить в интерфейс очереди и реализовать методы
- 3435 ✅
- 3233 ✅
- Добавить в интерфейс очереди и реализовать методы
removeAll(element)– удалить все элементы равные заданномуretainAll(predicate)– оставить только элементы равные заданному
- Взаимный порядок элементов должен сохраняться
- Дублирования кода быть не должно
- Добавить в интерфейс очереди и реализовать методы
Домашнее задание 3. Очередь на массиве 
Модификации
- Базовая ✅
- Классы должны находиться в пакете
queue - Исходный код тестов
- Откомпилированные тесты
- Для работы тестов необходимо добавить опцию JVM
--add-opens java.base/java.util=ALL-UNNAMED
- Классы должны находиться в пакете
- 3637. Дополнительно реализовать методы: ✅
push– добавить элемент в начало очереди;peek– вернуть последний элемент в очереди;remove– вернуть и удалить последний элемент из очереди;count– вернуть число вхождений элемента в очередь.
- 3839. Дополнительно реализовать методы: ✅
push– добавить элемент в начало очереди;peek– вернуть последний элемент в очереди;remove– вернуть и удалить последний элемент из очереди;countIf– вернуть число элементов очереди, удовлетворяющих предикату.
- 3435 ✅
- 3233 ✅
- Дополнительно реализовать методы:
indexOf– вернуть индекс первого вхождения элемента в очередь;lastIndexOf– вернуть индекс последнего вхождения элемента в очередь.
- Индексы отсчитываются с головы очереди.
- Если искомого элемента нет, методы должны возвращать
-1.
- Дополнительно реализовать методы:
Домашнее задание 2. Бинарный поиск 
Модификации
- Базовая ✅
- Класс
BinarySearchдолжен находиться в пакетеsearch - Исходный код тестов
- Откомпилированные тесты
- Класс
- 3637 ✅
- На вход подаётся число
xи массив, отсортированный по невозрастанию. - Требуется вывести число элементов массива, равных
x. - Не допускается использование типов
longиBigInteger. - Класс должен иметь имя
BinarySearch3637
- На вход подаётся число
- 3839 ✅
- На вход подаётся число
xи массив, отсортированный по невозрастанию. - Требуется вывести два числа: начало и длину диапазона элементов, равных
x. Если таких элементов нет, то следует вывести пустой диапазон, у которого левая граница совпадает с местом вставки элементаx. - Не допускается использование типов
longиBigInteger. - Класс должен иметь имя
BinarySearch3839
- На вход подаётся число
- 3435 ✅
- На вход подается отсортированный (строго) по убыванию массив,
циклически сдвинутый на
kэлементов. Все числа в массиве различны. - Требуется найти
k. - Класс должен иметь имя
BinarySearch3435
- На вход подается отсортированный (строго) по убыванию массив,
циклически сдвинутый на
- 3233 ✅
- На вход подается отсортированный (строго) по возрастанию массив,
циклически сдвинутый на
kэлементов. Все числа в массиве различны. - Требуется найти
k. - Класс должен иметь имя
BinarySearch3233
- На вход подается отсортированный (строго) по возрастанию массив,
циклически сдвинутый на
Домашнее задание 1. Обработка ошибок 
Модификации
- Base ✅
- Класс
ExpressionParserдолжен реализовывать интерфейс ListParser. - Результат разбора должен реализовывать интерфейс ListExpression.
- Нельзя использовать типы
longиdouble - Нельзя использовать методы классов
MathиStrictMath - Исходный код тестов
- Первый аргумент:
easyилиhard - Последующие аргументы: модификации
- Первый аргумент:
- Класс
- 3637 ✅
- Дополнительно реализуйте унарные операции
‖x‖– модуль,‖-5‖равно 5;³– возведение в куб,-5³равно −125;∛– кубический корень,∛-123равно -4.
- Дополнительно реализуйте унарные операции
- 3839 ✅
- Дополнительно реализуйте унарные операции:
‖x‖– модуль,‖-5‖равно 5;²– возведение в квадрат,-5²равно 25;√– квадратный корень,√24равно 4;³– возведение в куб,-5³равно −125;∛– кубический корень,∛-123равно -4.
- Дополнительно реализуйте унарные операции:
- 3435 ✅
- Дополнительно реализуйте унарные операции:
‖x‖– модуль,‖-5‖равно 5;√– квадратный корень,√24равно 4.
- Дополнительно реализуйте унарные операции:
- 3233 ✅
- Дополнительно реализуйте унарные операции:
‖x‖– модуль числа,‖-5‖равно 5;∛– кубический корень,∛-123равно -4.
- Дополнительно реализуйте унарные операции:
Description
Tests and solutions for "Programming Paradigms" course.
https://codejava.tech/courses/paradigms
Languages
Java
88.6%
JavaScript
7.6%
Clojure
3%
HTML
0.3%
Batchfile
0.3%
Other
0.2%