Backend-разработчик на javascript (стажер) Тестовое задание

Задачи по программированию  

программирование

Тестовое задание  (найдено на pyshop.ru)

Backend-разработчик на javascript (стажер)

к содержанию задачника

  1. В примере кода генерируется неупорядоченный массив забитых мячей в течении матча вида event = [{offset: n, score: [x, y]}, …] Разработайте функцию getScore(offset), которая вернет счет на момент offset вида {home: x, away: y}.
    const event = []

    let currentHomeScore = 0
    let currentAwayScore = 0

    // Events’ populating
    for (let i = 0; i < 5400; i += ~~(Math.random() * 5) + 1) {
    const shouldAddScore = ~~(Math.random() * 300) % 230 === 0

    if (shouldAddScore) {
    if (currentHomeScore > currentAwayScore) {
    currentAwayScore++
    } else {
    currentHomeScore++
    }
    }

    if (~~(Math.random() * 10) % 2 === 0) {
    event.push({
    offset: i,
    score: [currentHomeScore, currentAwayScore]
    })
    } else {
    event.unshift({
    offset: i,
    score: [currentHomeScore, currentAwayScore]
    })
    }
    }

    // Implement this according to the task
    const getScore = offset => {
    }

  2. Разработайте юнит-тесты проверяющие корректность работы функции. Удалось ли найти какие-либо дефекты в этой функции, полагаясь на ее назначение исходя из описания? Учтите, что вопрос не на знание фреймворков тестирования и их применение, можете взять любой, или даже разработать ряд самостоятельных функций. function isEven(number) {
    // Returns True if **number** is even or False if it is odd.
    return number % 2;
    }
  3. Преобразуйте файл books.csv в файл books.json, сгруппировав при этом книги по авторам, как показано в примере. Разделитель в csv-файле символ “точка с запятой” (“;”), первая строка – названия столбцов. books.csv Title; Author; Annotation
    Don Quixote; Miguel de Cervantes; Alonso Quixano, a retired country gentleman in his fifties
    Crime and Punishment; Fyodor Dostoyevsky; It is a murder story, told from a murders point of view
    The Odyssey; Homer; The Odyssey is one of two major ancient Greek epic poems attributed to Homer
    The Brothers Karamazov; Fyodor Dostoyevsky; Dostoevsky’s last and greatest novel, The Karamazov Brothers  books.json {
    “authors”: [
    {
    “author”: “Miguel de Cervantes”,
    “books”: [
    {
    “title”: “Don Quixote”,
    “description”: “Alonso Quixano, a retired country gentleman in his fifties”
    }
    ]
    },
    {
    “author”: “Fyodor Dostoyevsky”,
    “books”: [
    {
    “title”: “Crime and Punishment”,
    “description”: “It is a murder story, told from a murders point of view”
    },
    {
    “title”: “The Brothers Karamazov”,
    “description”: “Dostoevsky’s last and greatest novel, The Karamazov Brothers”
    }
    ]
    },
    {
    “author”: “Homer”,
    “books”: [
    {
    “title”: “The Odyssey”,
    “description”: “The Odyssey is one of two major ancient Greek epic poems attributed to Homer”
    }
    ]
    }
    ]
    }