# Dotazy ohledně czech-sort 1. koukni na naše testování u týmu Kosočtverci, přidal jsem tam pěkné řešení 2. co se po mně chce u toho czech-sort? 3. nemám vůbec předtavu, co je fuzzing/property-based testování - tedy název něco indikuje :), ale přesně samozřejmě nevím. 3. vysvětlit python -m pip install -e.[test] - stačí ten konec .[test] `-e` znamená `editable`: když změníš některý soubor, změny se projeví v nainstalovaném programu. Bez `-e` se instaluje "kopie". `.` je aktuální adresář. `[test]` je tzv. [extra](https://setuptools.readthedocs.io/en/latest/userguide/dependency_management.html#optional-dependencies) – způsob jak nainstalovat nějaké závislosti navíc, které program normálně nepotřebuje. V tomhle případě všechno co je potřeba na testy, tedy `pytest`. **že je tečka aktuální adresář vím, že je -e to stejné co --editable také vím, ale ten konec je divný. Jako pochopil jsem, že to je pytest, protože to je v souboru setup.cfg** Když nainstaluješ `czech-sort`, pytest se neinstaluje; kdybys nainstaloval `czech-sort[test]`, budeš to mít i s pytest. Koukni na to, jak to používá [`qrcode`](https://pypi.org/project/qrcode/): * `pip install qrcode` – umí generovat QR kódy a vypsat je třeba do příkazové řádky * `pip install qrcode[pil]` – umí generovat QR kódy a pomocí další knihovny ([`pillow`](https://pillow.readthedocs.io/en/stable/)) je zapsat i jako PNG obrázky https://github.com/lincolnloop/python-qrcode/blob/master/setup.cfg#L44 **ok, už to chápu, ale mrknu na to, díky** 4. mám se nějak hlouběji zajímat o kód, který je v czech-sort? Jako lehce jsem na to koukl a ten kód je poměrně složitý, používá některé pro mě neznámé knohovny a porovná znaky podle určitých pravidel, která mi jsou také cizí. Účel toho kódu respektive samotného programu samozřejmě chápu dobře. Zkus napsat test, který neprojde kvůli [nahlášené chybě](https://github.com/encukou/czech-sort/issues/5). Kód je složitý, ale nemusíš rozumět všemu. Budeš ale potřebovat se v něm zhruba zorientovat a kdyžtak najít nějakou konkrétní část. (To platí pro všechny větší projekty.) **-- PRERFEKT, to zvládnu** **Jasné, to by mělo být snadné.** A je to první krok k vyřešení :) - **řešení je podle mě tyhle divné znaky z cizích jazyků ignorovat, ale chápu, dám se do toho :).** Podle [wikipedie](https://cs.wikipedia.org/wiki/Abecedn%C3%AD_%C5%99azen%C3%AD#%C4%8Ce%C5%A1tina) (resp. ČSN 976030, kterou jsem ale nečetl) soudím že se Ł a Ø (které mají "diakritiku uvnitř znaku či přes znak") řadí za jiné varianty L a O, takže bych testoval třeba 'Ļ' < 'Ł' < 'M' a 'Ơ' < 'Ø' < 'P' 5. ještě něco dopíšu WOW, multiplayer online editace v akci :D :) # Aktualizace 27.8. v 9 ráno: první předběžné testy: ``` def test_foreign_chars1(): with pytest.raises(KeyError): czech_sort.sorted([u'Ł']) def test_foreign_chars2(): with pytest.raises(KeyError): czech_sort.sorted([u'Ø']) ```