Как добавить случайный тестовый случай в Codewars?

У меня есть функция в codewars.com getNumberLength(n) который получает некоторое число в разных цифрах и должен дать вам длину номера. Например, номер n=2000 дайте 4. Я также добавил несколько тестовых случаев с Test.assertEquals() метод, но теперь мне нужно добавить тестовый случай со случайными числами, кто-нибудь знает, как это сделать в кодовых войнах, потому что в их документации я не мог найти объяснение случайного тестового случая. У них есть свои методы тестирования, ребята, у которых есть опыт, помогите пожалуйста? Для информации функция написана на JavaScript.

2 ответа

Я предлагаю использовать функцию для генерации случайных чисел, как то, что обсуждается здесь. Тогда вы можете сделать что-то вроде:

function random(min,max) {
  return Math.floor(Math.random()*(max-min+1)+min);
};

Test.assertEquals(getNumberLength(random(1, 100)), 3)
Test.assertEquals(getNumberLength(random(1, 1000)), 4)
Test.assertEquals(getNumberLength(random(1, 10000)), 5)
Test.assertEquals(getNumberLength(random(1, 100000)), 6)

Тест для моего Ката со случайными числами выглядит так:

Test.describe("Random Tests:", function() {
  function solution(d) {
    if (d<3) return d*40;
    return (d<7) ? d*40-20 : d*40-50;  
  }
  for (let i = 0; i < 100; i++) {
    let days = ~~(Math.random() * 100) + 1;
    Test.assertEquals(rentalCarCost(days), solution(days));
  }
});

Я надеюсь, что это хороший пример и поможет вам.

Другие вопросы по тегам