Вам потребуется решить кодовую задачу на языке JavaScript.
Ссылка на задачу: https://repl.it/@JavaMentor/RomanCalculator
После решения задачи, сохраняем ссылку на решение (скопировать url).
Решение сохраняется на платформе под уникальным url, которое нужно будет выслать нам на почту info@java-mentor.com с темой “Тестовое задание Front-end”
Задача Calculator
Описание
Создайте функцию calculate.
Функция должна принимать арифметические операции двух чисел в виде строки и возвращать строку с результатом их выполнения.
Функция принимает данные из аргументов и возвращает с помощью return.
Требования
- Решение должно пройти все тесты.
- Калькулятор умеет выполнять операции сложения, вычитания, умножения и деления с двумя числами: a + b, a - b, a * b, a / b. Данные передаются в виде одной строки!
- Калькулятор умеет работать как с арабскими (1,2,3,4,5…), так и с римскими (I,II,III,IV,V…) числами. Оба операнда должны быть либо арабскими, либо римскими.
- Операнды должны лежать в диапазоне от 1 до 10 включительно, без ноля. Ответ может быть больше 10.
- Калькулятор умеет работать только с целыми числами, принимает и возвращает.
- Результат на выходе всегда строка с целым числом. В делении учитываем только целую часть - десятичную отбрасываем, например 2 / 4 = 0,5 - вернём 0.
- Калькулятор умеет работать только с арабскими или римскими цифрами одновременно, при вводе пользователем строки вроде 3 + II калькулятор должен выбросить исключение (ошибку) и прекратить свою работу.
- Поскольку в римской системе счисления нет нуля и отрицательных чисел, то вместо них возвращаем пустую строку. (например I - II = ‘’)
- При вызове калькулятора с неподходящими числами, функция выбрасывает исключение и завершает свою работу.
- При вызове калькулятора со строкой, которая не является математическим примером с одной из арифметических операций, описанных в требовании, приложение выбрасывает исключение и завершает свою работу.
Пример работы программы
calculate('1 + 2'); // вернется строка '3'
calculate('VI / III'); // вернется строка 'II'
calculate('VII / III'); // вернётся строка II'
calculate('I + II'); // вернется строка 'III'
calculate('I - II'); // вернётся строка '' (пустая строка) т.к. в римской системе нет отрицательных чисел
calculate('I + 1'); // вернётся исключение (ошибка) throws Error т.к. используются одновременно разные системы счисления
calculate('I'); // вернётся исключение throws Error т.к. строка не является математической операцией
calculate('1 + 1 + 1'); // вернётся исключение throws Error т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)
Работа с repl.it
- Необходимо зарегистироваться или залогиниться на платформе https://replit.com/
- Перейти по сслыке https://repl.it/@JavaMentor/RomanCalculator и нажать кнопку “Fork”, чтобы начать решать задачу

Основной интерфейс:

После нажатия кнопки “run” ваш код будет протестирован. Результаты тестов будет выведен в консоль. В консоли может быть как сообщение об успешном выполнении, так и сообщения об ошибках.
Вам нужно написать такой код, который пройдет все проверки.
Решение не прошло проверку

Успешное решение задачи:

Требования
- Ты должен решить задачу самостоятельно, без чьей-либо помощи.
- Можно пользоваться гуглом, но не ищи готовое решение задачи.
Как отправить решение?
Ссылки на решение отправьте нам на почту info@java-mentor.com с темой “Тестовое задание Front-end”
FAQ
С чего начать?
Ознакомься со списком тем, изучение которых поможет с задачей:
- Типы данных
- Переменные
- Методы массива и объекта
- Преобразование типов данных (из строки в число и обратно)
- Операция с числами (округление, деление и тд)
- Обработка ошибок, проброс исключений
- Типа ошибок в JS и что означают
- Функции
- Циклы, сравнение, условные конструкции if-else и switch-case
- Логические операторы
Начни свой путь к решению задачи с изучения ресурсов, которые помогут в подготовке:
ВНИМАНИЕ! Не нужно смотреть все видео из плейлиста, также не нужно проходить курсы от начала и до конца. У тебя 7 дней на решение задачи, поэтому не трать время. Сверься со списком тем выше и посмотри выборочно материалы только по этим темам! Для того, чтобы сэкономить твое время, выбери один-два источника из предложенных и используй их для решения ТЗ. Помни, твоя цель - решить задачу, а не изучить JS полностью самостоятельно.
- https://www.youtube.com/watch?v=T3IgBNN9bhM&list=PLVfMKQXDAhGUaEtJ_fOUz0F7TJtidE7Qw - канал на Youtube Web Developer Blog, плейлист с видео для начинающих
- https://ru.code-basics.com/languages/javascript - интерактивный курс по основам. Полное прохождение курса займет неделю, лучше совместить с параллельным изучением других источников, для решения ТЗ одного этого курса будет мало.
- https://ru.hexlet.io/courses/introduction_to_programming - более углубленный интерактив
- https://learn.javascript.ru/first-steps / https://learn.javascript.ru/data-types / https://learn.javascript.ru/error-handling - основы языка в виде коротких статей

Я знаю другой язык программирования, но не знаю JavaScript.
- Side-by-side code snippets - сравнение примеров кодов на разных языках. Выбираем ваш язык и javascript - изучаем сходства/различия.
- Learn X in Y minutes - JS - Короткий обзор синтаксиса языка.
- Все ссылки из предыдущего вопроса
Я написал код, а мне выдает какую-то ошибку
Что пошло не так? Устранение ошибок JavaScript
Советы:
- Если не понимаете английского - пользуйтесь словарем/переводчиком.
- Не стесняйтесь гуглить текст ошибки.
- Если не работает большой кусок кода - попробуйте отладить его часть.
Я не знаю, как подступиться к задаче
- Мысленно пройдись последовательно по коду, записывая значения переменных и результат работы.
- Постарайся разбить большую задачу на маленькие подзадачи и решать их по отдельности - так гораздо проще. Или упрости задачу до варианта, который ты можешь решить, а потом дорабатывай ее до необходимых требований.
Я не знаю, как работать с римскими числами
Воспользуйтесь преобразованием римских чисел в арабские. Как это сделать можно легко найти в интернете.
Успехов!