# Writing tests for anagram checking (part b2cf)

Посмотрим на задачу глазами разработчика: сначала решение, затем убеждаемся в его корректности.

## Задача

Определить, являются ли две строки анаграммами: состоят из одних и тех же букв с одинаковой частотой.

## Решение

```python
def are_anagrams(a: str, b: str) -> bool:
    return sorted(a.lower()) == sorted(b.lower())


print(are_anagrams("listen", "silent"))
```

## Как это работает

Анаграммы дают одинаковые отсортированные последовательности букв. Сортировка — простое и наглядное решение; словарь частот дал бы ту же проверку без сортировки.

## Пример работы

```text
True
```

## Сложность

O(n log n) из-за сортировки, O(n) по памяти.


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

**Читайте также:**

[ошибки](https://radicle.network/nodes/seed.pipapo.org/rad%3AzJbeXBLDFyqPoUGfoySzY2EWCgQt/issues/98146bf88c12387efd7ade73e8f09694a3186fae) · [сортировки](https://nowakpavel.wixsite.com/my-site-1/post/erosceny) · [минимум](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/muchitinasub-c6d47d.pdf) · [вызова](https://articlescad.com/yuyuanyaya-asian-latex-cosplay-photo-set-387067.html) · [короткие](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Задача](https://kappa.lol/lr9Equ) · [затем](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/bella-s-first-tug-f32ff0.pdf) · [удобны](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [крайние](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-5bf823.pdf) · [sorted(b.lower](https://paper.wf/mila1984log/japon-travesti-porn) · [разработчика](https://kappa.lol/SIGwlx) · [фреймворков](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tuzaibaby-7dad00.pdf) · [защищает](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/anagram-shagi-mvfrjtk7.md) · [последовательности](https://rentry.co/emmi-sellers-523882) · [правках](https://jjmojisol.com/starsessions+lisa+nude?f=instapaper) · [состоят](https://smartworth.org/mark_rosie_bg?f=linkcentre) · [учебных](https://rimworld.gallery/m/random/t/16288) · [Проверка](https://ecency.com/@karelnovotn6538/leakvids-0df1ec) · [return](https://rentry.co/gallery-951412) · [простое](https://paper.wf/irenaklein01log/skimaskgirl) · [требуют](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [задачу](https://github.com/ozalopa956-cloud/text-normalize-py/issues/4) · [частот](https://discuss.tchncs.de/post/65443899) · [silent](https://wuchu-pub.com/uploads/20261020/0501e0157d329736bf9cb1b6f1b10e79.pdf) · [Определить](https://blogfreely.net/igorcollins26/2-girls-omegle-game-two-girls-strip-and-masturbate-on-webcam) · [нескольких](https://rentry.co/gallery-723159) · [являются](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-9fa205.pdf) · [частотой](https://yakihonne.com/article/naddr1qvzqqqr4gupzqhfdh6z37r34tpve7ny0hdzgpx732ysf6ffm5u93suru0h3dn8mdqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknqdpsxq6xyve3943rswt9956xvden95uxyd3h943xxcenx5envdpkxsck27dszc4)

