# Writing tests for anagram checking (part edee)

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

## Задача

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

## Решение

```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  # и второй случай
```

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

С добавлением проверок решение становится самодокументируемым — сразу видно, что код делает.

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

[решение](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [корректности](https://ecency.com/@adamsvoboda1644/nn-liliana-model-ce865b) · [затем](https://sway.cloud.microsoft/pcwGMQqcION9aGQM) · [проверка](https://ownforum.freeflarum.com/d/5326-5326-brooke-shields-bath-tub) · [простое](https://news-ctl-posts.hashnode.dev/pitfalls-of-the-euclidean-algorithm-for-gcd-part-2a61) · [проверок](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Анаграммы](https://gall.dcinside.com/mgallery/board/view/?id=thekpop&no=64453) · [python](https://paper.wf/petrafischer91log/splatxo-leaked-sextape-ruby-reid-nude-amateur-video) · [Такой](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/abfmmd-b3530c.pdf) · [включая](https://radicle.network/nodes/seed.pipapo.org/rad%3Az38q7k5L6HdAcAxAWn6qrnhTvk8Xw/issues/d0082e7f8fa820188937139f79cc52f2e560c4c5) · [задачу](https://missis.kobbler.rs/%E5%8F%B6%E5%B1%B1%E5%B0%8F%E7%99%BE%E5%90%88?f=instapaper) · [случаи](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lisa-secret-stars-f9a5bb.pdf) · [работает](https://news-ctl-posts.hashnode.dev/writing-tests-for-factorial-computation-part-2c0d) · [добавлением](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/enrique-garay-desnudo-97c981.pdf) · [строки](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/av-f9e3d8.pdf) · [sorted(b.lower](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/enrique-garay-desnudo-56563d.pdf) · [Сложность](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/starsessions-lilu-d18b9a.pdf) · [защищает](https://ytsmx.homes/anoanochan?f=linkcentre) · [привычка](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [частот](https://blogfreely.net/nathannazarov26/olgun-turbanli)

