====== Domácí úkoly ======
Domácí úkoly se odevzdávají do systému [[https://cw.felk.cvut.cz/brute|BRUTE - Bundle for Reservation, Uploading, Testing and Evaluation]]. Termíny uvedené v systému jsou závazné.
Každý **v termínu odevzdaný domácí úkol** je hodnocen **3 body**. Úkol odevzdaný **do 3 dnů po deadlinu** je hodnocen **1.5 body**; **pozdější odevzdání** pak **0 body**. Odevzdaný úkol je takový, který úspěšně projde všemi testy v BRUTE. Pro odevzdání úkolů bude BRUTE otevřen celý semestr.
Odevzdání **všech** domácích úkolů (tj. i opožděně, za 0 bodů) je podmínkou k udělení zápočtu.
Pro každý úkol je na stránce zadání připraven template, který je **nutné** použít při implementaci. Upravujte vždy třídy v balíčku ''cz.cvut.fel.pjv.impl''; úpravy v jiných třídách nebudou při odevzdání brány v potaz, a mohou vyústit v selhání odevzdání!
Pokus o obcházení některého z testů, který nebude v souladu se zadáním (typicky náhodné zkoušení výsledků, využití známých i neznámých chyb v BRUTE, apod.) bude penalizováno udělením **0 bodů** za daný domácí úkol a jeho povinností ho přepracovat.
Domácí úkoly jsou kontrolovány na výskyt **[[help:common:plagiaty_opisovani|plagiátů]]**.
===== Práce s výstupem AE =====
Domácí úkoly jsou testovány pomocí Java frameworku [[https://junit.org/junit5/|JUnit 5]], a výsledek AE je zparsován pomocí jednoduchého skriptu. Příklad výstupu můžete vidět níže; výstup vždy obsahuje seznam prošlých a neprošlých testů. V případě neprošlého testu vždy dostanete informace o očekávaném (správném) výstupu a opravdovým (z vašeho programu):
Test Results
============
Total tests: 2 | ✅ Passed: 1 | ❌ Failed: 1
[##################################################--------------------------------------------------] (50,0 %)
Failed Tests
------------
❌ standardOutputMatchesReferenceSolution(String, Path) Standard output matches reference solution for input file private1.txt
Different output in stdout for file private1.txt at line 4. See comparison table below.
Row | Actual: | Expected:
-----------------------------------------------------------------------------------------------------------------------
0 | Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil): | Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):
1 | Zadej cinitel: | Zadej cinitel:
2 | Zadej cinitel: | Zadej cinitel:
3 | Zadej pocet desetinnych mist: | Zadej pocet desetinnych mist:
4 | 3 * 4 = 10 | 3 * 4 = 12
==> expected: <3 * 4 = 12> but was: <3 * 4 = 10>
Passed Tests
------------
✅ standardErrorOutputIsEmpty(String, Path) Standard output is empty for input file _public1.txt