#!/usr/bin/perl use strict; use warnings; use Test::More tests => 100; use Math::GrahamFunction; my @results_array= ( { n => 1, factors => [1], }, { n => 2, factors => [2,3,6], }, { n => 3, factors => [3,6,8], }, { n => 4, factors => [4], }, { n => 5, factors => [5,8,10], }, { n => 6, factors => [6,8,12], }, { n => 7, factors => [7,8,14], }, { n => 8, factors => [8,10,12,15], }, { n => 9, factors => [9], }, { n => 10, factors => [10,12,15,18], }, { n => 11, factors => [11,18,22], }, { n => 12, factors => [12,15,20], }, { n => 13, factors => [13,18,26], }, { n => 14, factors => [14,15,18,20,21], }, { n => 15, factors => [15,18,20,24], }, { n => 16, factors => [16], }, { n => 17, factors => [17,18,34], }, { n => 18, factors => [18,24,27], }, { n => 19, factors => [19,32,38], }, { n => 20, factors => [20,24,30], }, { n => 21, factors => [21,27,28], }, { n => 22, factors => [22,24,33], }, { n => 23, factors => [23,32,46], }, { n => 24, factors => [24,27,32], }, { n => 25, factors => [25], }, { n => 26, factors => [26,27,32,39], }, { n => 27, factors => [27,28,30,32,35], }, { n => 28, factors => [28,32,35,40], }, { n => 29, factors => [29,32,58], }, { n => 30, factors => [30,35,42], }, { n => 31, factors => [31,32,62], }, { n => 32, factors => [32,40,45], }, { n => 33, factors => [33,35,40,42,44], }, { n => 34, factors => [34,35,42,45,51], }, { n => 35, factors => [35,40,42,48], }, { n => 36, factors => [36], }, { n => 37, factors => [37,50,74], }, { n => 38, factors => [38,54,57], }, { n => 39, factors => [39,48,52], }, { n => 40, factors => [40,45,50], }, { n => 41, factors => [41,50,82], }, { n => 42, factors => [42,48,56], }, { n => 43, factors => [43,50,86], }, { n => 44, factors => [44,45,55], }, { n => 45, factors => [45,48,60], }, { n => 46, factors => [46,54,69], }, { n => 47, factors => [47,50,94], }, { n => 48, factors => [48,50,54], }, { n => 49, factors => [49], }, { n => 50, factors => [50,56,63], }, { n => 51, factors => [51,54,56,63,68], }, { n => 52, factors => [52,54,56,60,63,65], }, { n => 53, factors => [53,72,106], }, { n => 54, factors => [54,60,63,70], }, { n => 55, factors => [55,56,60,63,66], }, { n => 56, factors => [56,63,72], }, { n => 57, factors => [57,75,76], }, { n => 58, factors => [58,60,63,70,87], }, { n => 59, factors => [59,72,118], }, { n => 60, factors => [60,63,70,72,75], }, { n => 61, factors => [61,72,122], }, { n => 62, factors => [62,72,75,93], }, { n => 63, factors => [63,66,72,75,77], }, { n => 64, factors => [64], }, { n => 65, factors => [65,66,70,72,77,78], }, { n => 66, factors => [66,70,75,77,80], }, { n => 67, factors => [67,72,134], }, { n => 68, factors => [68,80,85], }, { n => 69, factors => [69,75,92], }, { n => 70, factors => [70,72,75,80,84], }, { n => 71, factors => [71,72,142], }, { n => 72, factors => [72,75,77,84,88], }, { n => 73, factors => [73,98,146], }, { n => 74, factors => [74,96,111], }, { n => 75, factors => [75,77,80,84,88,90], }, { n => 76, factors => [76,80,95], }, { n => 77, factors => [77,84,88,96], }, { n => 78, factors => [78,80,84,90,91], }, { n => 79, factors => [79,98,158], }, { n => 80, factors => [80,90,98], }, { n => 81, factors => [81], }, { n => 82, factors => [82,96,123], }, { n => 83, factors => [83,98,166], }, { n => 84, factors => [84,91,96,104], }, { n => 85, factors => [85,90,96,98,102], }, { n => 86, factors => [86,96,129], }, { n => 87, factors => [87,108,116], }, { n => 88, factors => [88,98,99], }, { n => 89, factors => [89,98,178], }, { n => 90, factors => [90,91,96,98,104,105], }, { n => 91, factors => [91,96,98,99,104,105,110], }, { n => 92, factors => [92,98,99,110,115], }, { n => 93, factors => [93,108,124], }, { n => 94, factors => [94,96,141], }, { n => 95, factors => [95,96,98,99,110,114], }, { n => 96, factors => [96,98,108], }, { n => 97, factors => [97,98,194], }, { n => 98, factors => [98,99,105,108,110,112], }, { n => 99, factors => [99,104,105,108,110,112,117], }, { n => 100, factors => [100], }, ); # TEST:$num_results=100 # TEST*$num_results foreach my $test_me (@results_array) { my $n = $test_me->{'n'}; my $solver = Math::GrahamFunction->new({ 'n' => $n, }); my $factors = $solver->solve()->{'factors'}; is_deeply ( $factors, $test_me->{'factors'}, "Testing the Graham Function Factors of $n" ); }