#!/usr/bin/ruby

# Tests for various Number divisor functions.

var n = irand(3,10)!

var h = Hash(
    divisors => 'sigma',
    prime_divisors => 'prime_sigma',
    prime_power_divisors => 'prime_power_sigma',
    square_divisors => 'square_sigma',
    squarefree_divisors => 'squarefree_sigma',

    udivisors => 'usigma',
    prime_udivisors => 'prime_usigma',
    prime_power_udivisors => 'prime_power_usigma',
    square_udivisors => 'square_usigma',
    squarefree_udivisors => 'squarefree_usigma',
)

for k in (0..5) {
    h.each {|a,b|
        assert_eq(n.(a).sum {|d| d**k }, n.(b)(k), "#{a} != #{b} for n=#{n} and k=#{k}")
    }
}

say "** Test passed!"