Roman_kh
33 уровень
Харьков

Тестовое задание "Image Comparison"

Пост из группы Архив info.javarush.ru
2645 участников

Привет всем, дорогие читатели и форумчане!

Отличная идея начать выставлять тестовые задания для тех, кто хочет себя попробовать перед собеседованием. Начал эту тему и я вспомнил, что у меня тоже есть пара задач.
Здесь я выставлю только условие задания, в комментариях можно обсуждать алгоритм решения. Задание, как и водится, будет на английском.
  • The output of the comparison should be a copy of one of the images image with differences outlined with red rectangles as shown below.
  • We need to see your own code. No third party libraries and borrowed code is allowed.
  • Target completion time is 2 hours, but you may choose to use up to 4 hours. Submissions sent after 4 hours will be disqualified. Note that in addition to quality, time is also factored into scoring the task. The closer you get to 2 hours the higher is the score.
  • Nice to have
    • It should be possible to exclude certain parts of the image from comparison, for example a clock or dynamically generated number. They will be provided by the caller as a list of rectangles to exclude.
    • Provide some sort of UI either as a web page or GUI that allows the user to select the images and view differences as an overlay on either of the images.
    Expected Deliverables
    • Source code.
    • Binary version of the algorithm that runs and produces output of comparison. No build should be required.
    • Output image showing the result of comparison.
    Tips and Hints
    • Use javax.imageio.ImageIO to read/write images.
    • Consider java.awt.image.BufferedImage#createGraphics() to draw on in-memory images.


    От себя хочу добавить, что хорошим тоном будет еще написать JUnit тесты для всего этого добра. Для этого нужно будет использовать какую-то систему сборки проектов Ant/Maven/Gradle чтобы подтянуть либу для JUnit.

    Ставим "+" на статье, если была полезна. Решаем ее, прокачиваем свои скиллы. Она попадалась у меня в двух компаниях! См. также мои другие статьи:
    Тестовое задание: "Написать Интерпретатор на язык BrainFuck"
    Тестовое задание "Image Comparison" Java - быстрее, сильнее и выше! Зарплаты украинских программистов. История успеха спустя 1.5 года от начала обучения
    Технические вопросы на собеседовании.
    Как найти работу? Рассылка резюме
    Профессиональное выгорание. Как устоять?
    Английский для IT и для собеседования
    Паттерн Command своими словами.
    Паттерн Singleton своими словами.
    Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA
    Помогите, нужна мотивация!

    Подписывайтесь на мой блог Паттерны Проектирования пишите в нем статьи!">