Files
fp-3-itmo/lab1/test/lab1_test.gleam
vladislav 3bf2db9b30 Тесты
+ поправил тест функции task2 map solution
2025-11-18 18:29:03 +03:00

121 lines
2.7 KiB
Gleam

import gleeunit
import gleeunit/should
import task1/task1
import task2/task2
pub fn main() {
gleeunit.main()
}
// Task 1 tests
pub fn task1_tail_recursive_test() {
task1.sum_multiples_tail_recursive(10)
|> should.equal(23)
task1.sum_multiples_tail_recursive(1000)
|> should.equal(233_168)
task1.sum_multiples_tail_recursive(0)
|> should.equal(0)
task1.sum_multiples_tail_recursive(1)
|> should.equal(0)
}
pub fn task1_recursive_test() {
task1.sum_multiples_recursive(10)
|> should.equal(23)
task1.sum_multiples_recursive(1000)
|> should.equal(233_168)
task1.sum_multiples_recursive(0)
|> should.equal(0)
task1.sum_multiples_recursive(1)
|> should.equal(0)
}
pub fn task1_modular_test() {
task1.sum_multiples_modular(10)
|> should.equal(23)
task1.sum_multiples_modular(1000)
|> should.equal(233_168)
task1.sum_multiples_modular(0)
|> should.equal(0)
task1.sum_multiples_modular(1)
|> should.equal(0)
}
pub fn task1_map_test() {
task1.sum_multiples_map(10)
|> should.equal(23)
task1.sum_multiples_map(1000)
|> should.equal(233_168)
task1.sum_multiples_map(0)
|> should.equal(0)
}
pub fn task1_all_implementations_equal_test() {
let limit = 1000
let result1 = task1.sum_multiples_tail_recursive(limit)
let result2 = task1.sum_multiples_recursive(limit)
let result3 = task1.sum_multiples_modular(limit)
let result4 = task1.sum_multiples_map(limit)
result1 |> should.equal(result2)
result1 |> should.equal(result3)
result1 |> should.equal(result4)
}
// Task 2 tests
pub fn task2_tail_recursive_test() {
task2.sum_power_equals_tail_recursive(4, 10_000)
|> should.equal(19_316)
task2.sum_power_equals_tail_recursive(5, 354_294)
|> should.equal(443_839)
}
pub fn task2_recursive_test() {
task2.sum_power_equals_recursive(4, 10_000)
|> should.equal(19_316)
task2.sum_power_equals_recursive(5, 354_294)
|> should.equal(443_839)
}
pub fn task2_modular_test() {
task2.sum_power_equals_modular(4, 10_000)
|> should.equal(19_316)
task2.sum_power_equals_modular(5, 354_294)
|> should.equal(443_839)
}
pub fn task2_map_test() {
task2.sum_power_equals_map(4, 10_000)
|> should.equal(19_316)
task2.sum_power_equals_map(5, 354_294)
|> should.equal(443_839)
}
pub fn task2_all_implementations_equal_test() {
let power = 5
let max_limit = 354_294
let result1 = task2.sum_power_equals_tail_recursive(power, max_limit)
let result2 = task2.sum_power_equals_recursive(power, max_limit)
let result3 = task2.sum_power_equals_modular(power, max_limit)
let result4 = task2.sum_power_equals_map(power, max_limit)
result1 |> should.equal(result2)
result1 |> should.equal(result3)
result1 |> should.equal(result4)
}