С 4 мая по 4 июня 2017 года разработчики и QA-специалисты ломали голову над задачками компании iTechArt.
Публикуем имена шести счастливчиков, которые получили билеты на техническую конференцию iTechForum//2017.
Результаты конкурса для разработчиков
Задача 1: Индийская почта и кий
Невозможно точно установить время появления бильярда. Известно лишь, что это, как и шахматы, – очень древняя игра, а родиной ее является Азия, по утверждению некоторых – Индия.
В той самой Индии в почтовых службах есть строгое правило, согласно которому посылаемые предметы не должны быть длиннее одного метра.
Однажды Раджану понадобилось срочно отправить по почте другу в Беларусь свой первый бильярдный кий. К несчастью, длина его была 1,4 метра, и его нельзя было разобрать или сломать, так как это был цельный кусок дерева и Раджан им очень дорожил.
В итоге Раджану все же удалось отправить кий индийской почтой. Как он это сумел сделать?
Правильный ответ:
Раджан положил кий в пакет с размерами 1*1 метр. Этот пакет соответствовал всем требованиям почты, так как стороны были длиной 1 метр. Диагональ же пакета составила как раз 1,414 метра – квадратный корень из двух.
Если бы кий был длиной 1,7 метра, то его можно было бы положить по диагонали в ящик/коробку со сторонами 1 метр. Диагональ куба с метровыми ребрами равна 1,73 метра.
Мы получили 43 правильных ответа на эту задачу (засчитывались ответы с пакетом и коробкой).
Задача 2: F (2017). Вспоминаем математику
Функция f(n) определена для всех натуральных n и принимает целые неотрицательные значения.
Известно, что f(n) удовлетворяет условиям:
а) при любых m и n f(m + n) – f(m) – f(n) принимает значения 0 или 1,
б) f(2) = 0,
в) f(3) > 0,
г) f(9999) = 3333.
Найди f (2017).
Правильный ответ:
f(2017) = 672.
По условию f(9999) = 3333, т.е. искомая функция делит аргумент на 3 без остатка.
Мы получили 38 правильных ответов на эту задачу.
Задача 3: Money, money...
Недавно кошельки белорусов реально потяжелели. Год назад в оборот были введены монеты.
Предлагаем написать полезную функцию, которая высчитает количество способов разменять заданную сумму в рублях с помощью монет заданного номинала.
Например, существует 3 способа разменять 4 рубля, с помощью монет достоинством 1 и 2:
1+1+1+1,
1+1+2,
2+2.
Очевидно, что порядок монет не важен. Предполагается, что в наличии у тебя имеется бесконечное число монет заданного номинала. Твоя функция на вход принимает сумму для размена как первый аргумент, и массив монет уникального достоинства:
countChange(4, [1,2]) // => 3;
countChange(10, [5,2,3]) // => 4;
countChange(11, [5,7]) // => 0
Решения принимаются на C#, JavaScript или Python.
Правильный ответ:
Ваш код проверялся нашими техническими экспертами. И если он не проходил Unit Tests, то ответ не засчитывался.
Мы получили 21 правильный ответ на эту задачу.
В итоге организаторы получили 102 карты для розыгрыша трех билетов на конференцию случайным образом.
Все участники конкурса получили запись видео с розыгрышем на электронную почту, указанную при отправке ответов.
Имена победителей:
Афанасьев Дмитрий
Духовник Андрей
Рудович Инна
Результаты конкурса для QA-специалистов
Участникам конкурса нужно было протестировать Instagram.
Наши QA-специалисты выбрали трех ребят, которые нашли лучшие, по нашему мнению, баги.
Публикуем примеры интересных багов:
Баг 1: при просмотре Историй пользователей load bar скрывается под системной панелью при получении уведомлений.
Платформа тестирования: Huawei p8 (Android 5.0.1)
Описание бага:
· Priority: Average
· Steps:
1. Войти в Instagram
2. Запустить просмотр историй пользователей
3. Отправить уведомление с компьютера на девайс (скайп, e-mail)
· Реальный результат: load bar скрыт под системной панелью, чтобы вернуть load bar нужно переоткрыть истории (http://prntscr.com/f68jtv )
· Ожидаемый результат: load bar должен отображаться ниже под появившейся системной панелью
Баг 2: Кнопки создания (отмены) скриншота отображаются над виртуальной клавиатурой в разделе Report a Problem.
Платформа тестирования: Huawei p8 (Android 5.0.1)
Описание бага:
· Priority: Minor
· Steps:
1. Войти в Instagram;
2. Выбрать Options в Profile;
3. Выбрать Support - Report a Problem - Report a Problem;
4. Выбрать любую причину, перейти далее;
5. Выбрать добавить фото - Take Screenshot;
6. Выбрать Comments в Options;
7. Выбрать Custom Keywords.
· Реальный результат: Cancel и Capture кнопки отображаются поверх виртуальной клавиатуры, т.о. пользователь не может выбрать буквы при необходимости под кнопками (http://prntscr.com/f68ptn).
· Ожидаемый результат: Cancel и Capture кнопки должны отображаться над виртуальной клавиатурой при её отображении.
Баг 3: Некликабельная ссылка на помощник Instagram в разделе About Ads.
Платформа тестирования: Huawei p8 (Android 5.0.1)
Описание бага:
· Priority: Trivial
· Steps:
1. Войти в Instagram
2. Выбрать Profile - Options - About Ads
· Реальный результат: некликабельная ссылка на помощь (http://prntscr.com/f68r6g)
· Ожидаемый результат: ссылка должна быть кликабельной.
Баг 4: Неверное отображение количества лайков у постов с двузначным числом лайков, заканчивающимся на 1.
Платформа тестирования: Смартфон Samsung Galaxy J7 2016 (Android 6.0.1) / 5.5" / 1280*720.
Описание бага:
· Severity: Average
· Steps:
1. Войти в Instagram под любой учетной записью
2. Найти любой пост с двузначным числом лайков, имеющий следующий вид "Нравится user1, user2 и еще X0" (например, "user1, user2 и еще 50").
3. Поставить лайк посту из шага 2.
4. Обратить внимание на отображение количества лайков.
· Реальный результат: Количество лайков отображается неверно, имеет следующий вид: "Нравится user1, user2 и еще 1".
· Ожидаемый результат: Счетчик лайков должен увеличиться на 1 и иметь следующий вид: "Нравится user1, user2 и еще X1" (например, "user1, user2 и еще 51").
Имена победителей:
Цыдик Юлия
Анцук Максим
Сутько Анжела
Поздравляем победителей! На вашу почту были отправлены билеты на конференцию, которые нужно активизировать по ссылке, указанной в письме.
Распечатанные или сохраненные билеты на телефон нужно захватить с собой на мероприятие.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.