# 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'Ø'])
```