Mocha тест на простой код не проходит, когда без видимой причины - PullRequest
0 голосов
/ 25 ноября 2018

Это своего рода тест онлайн-программирования.Система позволяет вам написать решение проблем и проверить его на соответствие его (внутренним) модульным тестам платформы.

Вот краткое изложение проблемы:

Чтобы написать функциюэто занимает 2 параметра (х, у).

Если x больше y, то возвращает массив четных чисел между x и y.

Если x меньше y, он возвращает массив нечетных чисел между x и y.

Если x и y равны или если ввод недопустим / не является целым числом, возвращает пустой массив. Результирующий массив исключает x и y в каждом случае.

Например, если x, y являются целыми числами 10, 2, функция вернет все четные числа от 2 до 10, т.е. [4, 6, 8].

Вот мойcode:

const numGame = (x, y) => {
  let result = [];
  if (!Number.isInteger(x) || !Number.isInteger(y)) {
    return result;
  }
  if (x > y) {
    for(let i = y + 1; i < x; i++)
      if(i%2 == 0) result.push(i);
  }
  if (x < y) {
    for(let i = x + 1; i < y; i++) {
      if(i%2 == 1 || i%2 == -1) result.push(i); 
    } 
  }

  return result;
}

Вот мои собственные тесты, которые легко проходят:

describe('Challenge', function() {
  it('should return the right array', function() {
    assert.deepEqual(numGame(2,12), [3, 5, 7, 9, 11]);
    assert.deepEqual(numGame(12, 2), [4, 6, 8, 10]);
    assert.deepEqual(numGame(-6, 12), [-5, -3, -1, 1, 3, 5, 7, 9, 11]);
    assert.deepEqual(numGame(12, -4), [-2, 0, 2, 4, 6, 8, 10]);
    assert.deepEqual(numGame(0,0), []);
  });
});

Мои тесты выше проходят, но когда я отправляю свой код, он не проходит внутренние тесты и возвращает следующее:

should return the right array
  expected [ Array(9) ] to deeply equal [ Array(11) ]

Ошибка кажется странной.Нет никакого способа увидеть код, с которым тестируется мое решение, так что это действительно расстраивает.Пожалуйста, просмотрите мое решение, чтобы увидеть, есть ли какие-либо крайние случаи, которые оно не обрабатывает, и, возможно, предоставьте лучшее решение / алгоритм.

Я также хотел бы знать, есть ли шанс, что внутренний тест платформы может бытьчто-то не так?Спасибо!

1 Ответ

0 голосов
/ 25 ноября 2018

Оказывается, что тест платформы, в отношении которого тестируется мой код, на самом деле неверен.Я отредактировал код, включив в него x и y, и тест прошел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...