# tparallel Реализуйте api, дублирующее поведение `t.Parallel()`. Тест - это функция с сигнатурой `func(*T)`. Вам нужно реализовать функцию `Run(topTests []func(*T))`, запускающую множество top-level тестов. Каждый тест получает аргументом уникальный объект `*T`. В начате все тесты выполняются последовательно. Если тест вызывает `t.Parallel()`, то он становится паралельным и блокируется на этом вызове. После этого, запускается следующий последовательный тест. Когда все последовательные тесты завершились, все паралельные тесты разблокируются и продолжают своё исполнения. Функция `Run` выходит, когда завершились все тесты. Тест может запускать под-тесты вызывая `t.Run`. Тест считается завершённым, когда завершился он сам и завершились все его подтесты. Под-тест начинает своё выполнение последовательно, блокирую вызов Run. Подтест может стать параллельным, вызвав `t.Parallel()`. Такой тест должен продолжить исполнение, после того как функция родительского теста завершилась.