Как добавить случайный тестовый случай в 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));
}
});
Я надеюсь, что это хороший пример и поможет вам.