Repozytorium do dzielenia się testami z IPP.
- Zrób forka repozytorium na swoje konto na Githubie.
- Dodaj testy i oczekiwane wyjście do katalogu
testy_labirynt, bądź podkatalogu, jeśli jest ich dużo. - Otwórz pull requesta w tym repozytorium (postaram się jak najszybciej zatwierdzić).
Aby uniknąć powtarzających się nazw testów nazwij swoje testy pierwszą literą imienia oraz nazwiskiem.
Reprezentatywny przykład. Jan Kowalski chciał dodać swoje testy na nowy, nieznany do tej pory edge case.
Sklonował repozytorium i dodał do niego pliki jkowalski.in, jkowalski.out oraz jkowalski.err.
Znalazł też inne fajne testy, więc dodał jeszcze jkowalski_1.in, jkowalski_1.out i jkowalski_1.err.
Bądź jak Jan Kowalski.
Ważne, żeby pliki dotyczące tych samych testów miały te same nazwy. Plik *.in zawiera wejście, *.out wyjście
standardowe, a *.err wyjście stderr.
Oficjalne:
Pokaż opisy
- example1 – mały labirynt dwuwymiarowy z drogą o długości 12
- example2 – mały labirynt jednowymiarowy z drogą o długości 5
- example3 – mały labirynt trójwymiarowy, ale jeden wymiar jest zdegenerowany, pozycja końcowa jest pozycją początkową
- example4 – mały labirynt trójwymiarowy z drogą o długości 4
- example5 – duży labirynt jednowymiarowy bez drogi
- error00 – ewidentnie za duży labirynt
- error10 – rozmiar labiryntu nie może być zerowy
- error26 – pozycja (początkowa) musi być w pustej kostce
- error30 – współrzędne pozycji (końcowej) muszą być dodatnie
- error40 – liczba opisująca położenie ścian ma za dużo bitów
- error50 – dane wejściowe mają za dużo linii
Studenckie:
Uwaga! Niektóre z tych testów zwracją inne kody blędów niż testy oficjalne. W szczególności, gdy testy zwracają
ERROR 0 dla zbyt dużego labiryntu te testy mogą uważać ERROR 1 za poprawne wyjście (ponieważ iloczyn wymiarów jest
większy niż SIZE_MAX). Podobnie gdy testy oficjalne zwracają ERROR 2/3, ponieważ początek/koniec są w niepustej kostce, niektóre
z tych testów mogą zwracać ERROR 4 (niepoprawna liczba w czwartej linijce). Nie należy się tym przejmować.
Folder kwasow
- kwasowski_1 - example1 + zera wiodące w linijkach 1-3 i kodzie hex
- kwasowski_2 - example1 + ale ma spacje wiodące, między liczbami i na końcu linijki
- kwasowski_3 - example1 + tabulatory brzydkie
- kwasowski_4 - example4 + brzydkie wejście (tabulatory, spacje, zera)
- kwasowski_5 - (error) pierwsza linijka wejścia zawiera tekst
- kwasowski_6 - (error) mała litera i spacja w hexie (mała litera nie jest błędna, spacja owszem)
- kwasowski_7 - (error) wymiar labiryntu większy niż `SIZE_MAX`
- kwasowski_8 - (error) trzecia linijka zawiera za mało danych
- kwasowski_9 - (error) dane z `R` w czwartej linijce są rozdzielone na dwie linijki (czyli jest ich za mało w czwartej linijce)
- kwasowski_10 - (error) spacje między `0x`, a hexem
- kwasowski_11 - (error) niby wszystkie linijki są, ale jest dodatkowa linijka przerwy między pierwszą i drugą
Folder etiaro
- Folder 2D - losowe testy dwuwymiarowe
- Folder 3D - losowe testy trójwymiarowe
- Folder 4-8D - losowe testy 4-8-wymiarowe, niektóre dość duże (długi czas wykonywania)
Folder rentlib
- Folder hex106 - losowe testy z liczbą opisującą labirynt w zapisie szesnastkowym, rozmiar labiryntu nie przekracza znacznie 10^6
- Folder hex1018 - losowe testy z liczbą opisującą labirynt w zapisie szesnastkowym, rozmiar labiryntu nie przekracza znacznie 10^18
- Folder rnd106 - losowe (potężne) testy z liczbą opisującą labirynt w formie R ..., jest wiele znaków białych, rozmiar labiryntu nie przekracza znacznie 10^6
- Folder rnd109 - losowe (potężne) testy z liczbą opisującą labirynt w formie R ..., rozmiar labiryntu nie przekracza znacznie 10^9, aby uniknąć ERROR 0 jest wiele niedużych wymiarów
Folder wojtekr
- zly01 - 3. linijka położenie większe niż wymiar
- zly02 - 2. linijka położenie większe niż wymiar
- zly03 - 2. linijka liczba za dużo
- zly04 - 3. linijka pusta
- zly05 - 2. linijka pusta
- zly06 - 4. linijka niepoprawna
- zly07 - 4. linijka liczba za dużo
- zly08 - 4. linijka liczba za mało
- zly09 - 4. linijka pusta
- zly10 - 2. linijka zawiera 0
- zly11 - 3. linijka zawiera 0
- zly12 - 5. linijka istnieje w 0x
- zly13 - 5. linijka istnieje w R
- zly14 - 4. linijka dodatkowy znak
- zly15 - 2. linijka pozycja w kostce
- zly16 - 4. linijka zawiera znak nie hexowy
- zly17 - 3. linijka pozycja w kostce
- zly18 - 4. linijka liczba R ponad UINT32_MAX
- zly19 - 4. linijka m jest zerem
- zly20 - 4. linijka spacja po x
- zly21 - 4. linijka spacja po 0
- test12 - 4. linijka liczymy liczby do r włącznie
- test13 - 4. linijka liczby mogą być zerami
Folder fuchczyk
- pfuchs1 - Brak 2. linijki (EOF w pierwszej)
- pfuchs2 - Niepoprawna 2. linijka (tylko EOF)
- pfuchs3 - Niepoprawna 1. linijka (pusta - tylko EOF)
- pfuchs4 - Brak 1. linijki (tylko EOF)
- pfuchs5 - Niepoprawna 3. linijka (pusta - tylko EOF)
- pfuchs6 - Brak 3. linijki (EOF w drugiej)
- pfuchs7 - Brak 4. linijki (EOF w trzeciej)
- pfuchs8 - Niepoprawna 4. linijka (pusta - tylko EOF)
- pfuchs9 - Pomieszanie formatów: rozpoczęcie od "0R"
Folder az
- Folder tsh_h_50mln - Kilka testów 3D o wymiarach 10000 x 10000 x 4 o tak dobranej trasie od startu do końca aby jej przebycie wymagało przejścia około 50 milionów kostek
- Folder a - 64 testy o liczbie wymiarów 1,2, ... ,64. Rozmiar każdego wymiaru jest równy 2. W każdym są tylko puste kostki. Start i koniec tak dobrane aby długość trasy była równa liczbie wymiarów.
- Folder b - 64 testy o liczbie wymiarów 1,2, ... ,64. Rozmiar każdego wymiaru jest równy 2. W każdym są tylko puste kostki. Start i koniec w tej samej kostce.
Folder correctErrorHandling
- Proste testy sprawdzające poprawność wejśćia.
- UWAGA !!! EOF na końcu linij traktujemy jako błąd tej linii. Oraz jeśli jest ściana na pozycji strtowej, zwracamy ERROR 2, analogicznie dla pozycji końcowej. (Jeśli ktoś zwraca to jako błąd w kolejnej linijce, to powinien mieć poprawne wszystkie testy oprócz stu).
Czasy zmierzone na serwerze students przy użyciu komendy time (czasy dotyczą czasów real) bez valgrinda.
| Nazwa testu | Czas |
|---|---|
| Oficjalne | 0m1.091 |
| kwasow | 0m0.250 |
| etiaro/1D | 0m10.388 |
| etiaro/2D | 0m10.982 |
| etiaro/3D | 0m6.838 |
| etiaro/4-8D | 2m11.267 |
| rentib/hex106 | 0m41.980 |
| rentib/hex1018 | 3m28.198 |
| rentib/rnd106 | 16m3.333 |
| rentib/hex109 | 109m4.448 |
| wojtekr | 0m17.562 |
| tsh_h_50mln | 0m56.014 |
| fuchczyk | 0m0.170 |