Compare commits

...

2 Commits

Author SHA1 Message Date
me
de97058fe9 add tests for hw4
Some checks failed
Fast Reverse Tests / test (push) Failing after 16s
Reverse Tests / test (push) Successful in 8s
Sum Tests / test (push) Successful in 7s
Word Stat Tests / test (push) Failing after 4s
2026-01-31 13:26:06 +05:00
me
4807af64d9 upd 2026-01-31 13:25:49 +05:00
3 changed files with 48 additions and 15 deletions

View File

@@ -0,0 +1,22 @@
name: Word Stat Tests
on:
push:
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Compile Java
run: |
mkdir -p out
javac -d out $(find java -name "*.java")
- name: Run Word Stat tests
run: |
java -ea -cp out wordStat.WordStatTest Base

View File

@@ -337,7 +337,8 @@ include_toc: true
* Класс должен иметь имя `ReverseSum` * Класс должен иметь имя `ReverseSum`
## Домашнее задание 4. Подсчет слов ## Домашнее задание 4. Подсчет слов [![Word Stat](https://git.fymio.us/me/prog-intro-2025/actions/workflows/word-stat.yml/badge.svg)](https://git.fymio.us/me/prog-intro-2025/actions)
Модификации Модификации
* *Base* * *Base*
@@ -401,20 +402,20 @@ include_toc: true
Модификации Модификации
* *Base* * *Base*
* Исходный код тестов: * Исходный код тестов:
[ReverseTest.java](java/reverse/ReverseTest.java), [ReverseTest.java](java/reverse/ReverseTest.java),
[ReverseTester.java](java/reverse/ReverseTester.java) [ReverseTester.java](java/reverse/ReverseTester.java)
* Откомпилированные тесты: [ReverseTest.jar](artifacts/ReverseTest.jar) * Откомпилированные тесты: [ReverseTest.jar](artifacts/ReverseTest.jar)
* Аргументы командной строки: модификации * Аргументы командной строки: модификации
* *Memory* * *Memory*
* Программа должна сначала считывать все данные в память, * Программа должна сначала считывать все данные в память,
и только потом обрабатывать их. и только потом обрабатывать их.
* Пусть _M_ объём памяти, необходимый для сохранения ввода * Пусть _M_ объём памяти, необходимый для сохранения ввода
в двумерном массиве `int` минимального размера. в двумерном массиве `int` минимального размера.
Ваша программа должна использовать не более 4_M_ + 1024 байт памяти. Ваша программа должна использовать не более 4_M_ + 1024 байт памяти.
* Накладные расходы на запуск вашей программы JVM не учитываются. * Накладные расходы на запуск вашей программы JVM не учитываются.
* *3637* * *3637*
* Рассмотрим входные данные как (не полностью определенную) матрицу, * Рассмотрим входные данные как (не полностью определенную) матрицу,
вместо каждого числа выведите максимум из чисел, вместо каждого числа выведите максимум из чисел,
находящихся в его столбце в последующих строках, и его самого находящихся в его столбце в последующих строках, и его самого
@@ -424,7 +425,7 @@ include_toc: true
вместо каждого числа выведите максимум из чисел вместо каждого числа выведите максимум из чисел
текущее число — правый нижний угол матрицы текущее число — правый нижний угол матрицы
* Класс должен иметь имя `ReverseMax` * Класс должен иметь имя `ReverseMax`
* *3435* * *3435*
* Рассмотрим входные данные как (не полностью определенную) матрицу, * Рассмотрим входные данные как (не полностью определенную) матрицу,
выведите ее поворот по часовой стрелке, например для ввода выведите ее поворот по часовой стрелке, например для ввода
``` ```
@@ -440,15 +441,15 @@ include_toc: true
4 4
``` ```
* Класс должен иметь имя `ReverseRotate` * Класс должен иметь имя `ReverseRotate`
* *3233* * *3233*
* Выведите (в реверсивном порядке) только числа, * Выведите (в реверсивном порядке) только числа,
у которых сумма номеров строки и столбца четная у которых сумма номеров строки и столбца четная
* Класс должен иметь имя `ReverseEven` * Класс должен иметь имя `ReverseEven`
* *4142* * *4142*
* Рассмотрим входные данные как (не полностью определенную) матрицу, * Рассмотрим входные данные как (не полностью определенную) матрицу,
вместо каждого числа выведите среднее из чисел в его столбце и строке вместо каждого числа выведите среднее из чисел в его столбце и строке
* Класс должен иметь имя `ReverseAvg` * Класс должен иметь имя `ReverseAvg`
* *4749* * *4749*
* Рассмотрим входные данные как (не полностью определенную) матрицу, * Рассмотрим входные данные как (не полностью определенную) матрицу,
вместо каждого числа выведите сумму чиселв его столбце и строке вместо каждого числа выведите сумму чиселв его столбце и строке
* Класс должен иметь имя `ReverseSum` * Класс должен иметь имя `ReverseSum`
@@ -456,21 +457,21 @@ include_toc: true
## Домашнее задание 2. Сумма чисел [![Sum Tests](https://git.fymio.us/me/prog-intro-2025/actions/workflows/sum.yml/badge.svg)](https://git.fymio.us/me/prog-intro-2025/actions) ## Домашнее задание 2. Сумма чисел [![Sum Tests](https://git.fymio.us/me/prog-intro-2025/actions/workflows/sum.yml/badge.svg)](https://git.fymio.us/me/prog-intro-2025/actions)
Модификации Модификации
* *Base* * *Base*
* Исходный код тестов: * Исходный код тестов:
[SumTest.java](java/sum/SumTest.java), [SumTest.java](java/sum/SumTest.java),
[SumTester.java](java/sum/SumTester.java), [SumTester.java](java/sum/SumTester.java),
[базовые классы](java/base/) [базовые классы](java/base/)
* Откомпилированные тесты: [SumTest.jar](artifacts/SumTest.jar) * Откомпилированные тесты: [SumTest.jar](artifacts/SumTest.jar)
* Аргументы командной строки: модификации * Аргументы командной строки: модификации
* *3637* * *3637*
* Входные данные являются 64-битными числами в формате с плавающей точкой * Входные данные являются 64-битными числами в формате с плавающей точкой
* На вход подаются десятичные и шестнадцатеричные числа * На вход подаются десятичные и шестнадцатеричные числа
* Шестнадцатеричные числа имеют префикс `0x`, * Шестнадцатеричные числа имеют префикс `0x`,
например `0xa.bp2` равно (10+11/16)·4 равно 42.75 например `0xa.bp2` равно (10+11/16)·4 равно 42.75
* Ввод регистронезависим * Ввод регистронезависим
* Класс должен иметь имя `SumDoubleHex` * Класс должен иметь имя `SumDoubleHex`
* *3839* * *3839*
* Входные данные помещаются в тип [BigDecimal](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/math/BigDecimal.html) * Входные данные помещаются в тип [BigDecimal](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/math/BigDecimal.html)
* На вход подаются десятичные и шестнадцатеричные числа * На вход подаются десятичные и шестнадцатеричные числа
* Шестнадцатеричные числа имеют префикс `0x`, * Шестнадцатеричные числа имеют префикс `0x`,
@@ -478,22 +479,23 @@ include_toc: true
(мантисса и порядок являются целыми числами) (мантисса и порядок являются целыми числами)
* Ввод регистронезависим * Ввод регистронезависим
* Класс должен иметь имя `SumBigDecimalHex` * Класс должен иметь имя `SumBigDecimalHex`
* *3435* * *3435*
* На вход подаются десятичные и шестнадцатеричные числа * На вход подаются десятичные и шестнадцатеричные числа
* Шестнадцатеричные числа имеют префикс `0x` * Шестнадцатеричные числа имеют префикс `0x`
* Ввод регистронезависим * Ввод регистронезависим
* Класс должен иметь имя `SumHex` * Класс должен иметь имя `SumHex`
* *3233* * *3233*
* Входные данные являются 64-битными числами в формате с плавающей точкой * Входные данные являются 64-битными числами в формате с плавающей точкой
* Класс должен иметь имя `SumDouble` * Класс должен иметь имя `SumDouble`
* *4142* * *4142*
* Входные данные помещаются в тип [BigInteger](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/math/BigInteger.html) * Входные данные помещаются в тип [BigInteger](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/math/BigInteger.html)
* восьмеричные числа имеют суффикс `o` * восьмеричные числа имеют суффикс `o`
* Класс должен иметь имя `SumBigIntegerOctal` * Класс должен иметь имя `SumBigIntegerOctal`
* *4749* * *4749*
* Входные данные являются 64-битными целыми числами * Входные данные являются 64-битными целыми числами
* восьмеричные числа имеют суффикс `o` * восьмеричные числа имеют суффикс `o`
* Класс должен иметь имя `SumLongOctal` * Класс должен иметь имя `SumLongOctal`
<!--
Для того, чтобы протестировать программу: Для того, чтобы протестировать программу:
@@ -547,3 +549,5 @@ include_toc: true
1. Запустите и проверьте, что вы получили ту же ссылку, что и в предыдущем пункте 1. Запустите и проверьте, что вы получили ту же ссылку, что и в предыдущем пункте
1. Сдайте скрипт преподавателю 1. Сдайте скрипт преподавателю
1. Вы можете получить больше плюсиков, модифицируя код `RunMe.java` 1. Вы можете получить больше плюсиков, модифицируя код `RunMe.java`
-->

View File

@@ -0,0 +1,7 @@
package wordStat;
public class WordStat {
public static void main(String[] args) {
System.out.println("hello world!");
}
}