1# -*- mode: perl; -*- 2 3use strict; 4use warnings; 5 6use Test::More tests => 4957; 7 8my $class; 9 10BEGIN { 11 $class = 'Math::BigRat'; 12 use_ok($class); 13} 14 15while (<DATA>) { 16 s/#.*$//; # remove comments 17 s/\s+$//; # remove trailing whitespace 18 next unless length; # skip empty lines 19 20 my ($nval, $kval, $nokval) = split /:/; 21 my ($n, $k, $got, @got); 22 23 for my $context_is_scalar (0, 1) { 24 for my $k_is_scalar (0, 1) { 25 26 my $test = qq|\$n = $class -> new("$nval");|; 27 28 $test .= $k_is_scalar 29 ? qq| \$k = "$kval";| 30 : qq| \$k = $class -> new("$kval");|; 31 32 $test .= $context_is_scalar 33 ? qq| \$got = \$n -> bnok(\$k);| 34 : qq| \@got = \$n -> bnok(\$k);|; 35 36 my $desc = "bnok() in "; 37 $desc .= $context_is_scalar ? "scalar context" : "list context"; 38 $desc .= $k_is_scalar ? " with k as scalar" : " with k as object"; 39 40 subtest $desc, 41 sub { 42 plan tests => $context_is_scalar ? 7 : 8; 43 44 eval $test; 45 is($@, "", "'$test' gives emtpy \$\@"); 46 47 if ($context_is_scalar) { 48 49 # Check output. 50 51 is(ref($got), $class, 52 "'$test' output arg is a $class"); 53 54 is($got -> bstr(), $nokval, 55 "'$test' output arg has the right value"); 56 57 } else { 58 59 # Check number of output arguments. 60 61 cmp_ok(scalar @got, '==', 1, 62 "'$test' gives one output arg"); 63 64 # Check output. 65 66 is(ref($got[0]), $class, 67 "'$test' output arg is a $class"); 68 69 is($got[0] -> bstr(), $nokval, 70 "'$test' output arg has the right value"); 71 } 72 73 # Check the invocand. 74 75 is(ref($n), $class, 76 "'$test' invocand is still a $class"); 77 78 is($n -> bstr(), $nokval, 79 "'$test' invocand has the right value"); 80 81 # Check the input argument. 82 83 if ($k_is_scalar) { 84 85 is(ref($k), '', 86 "'$test' second input arg is still a scalar"); 87 88 is($k, $kval, 89 "'$test' second input arg is unmodified"); 90 91 } else { 92 93 is(ref($k), $class, 94 "'$test' second input arg is still a $class"); 95 96 is($k -> bstr(), $kval, 97 "'$test' second input arg is unmodified"); 98 } 99 }; 100 } 101 } 102} 103 104__DATA__ 105 106# n and/or k is NaN 107 108NaN:NaN:NaN 109NaN:0:NaN 110NaN:3:NaN 1113:NaN:NaN 112NaN:-3:NaN 113-3:NaN:NaN 114 115# n = inf 116 117inf:-inf:NaN 118inf:-3:0 119inf:-2:0 120inf:-1:0 121inf:0:1 122inf:1:inf 123inf:2:inf 124inf:3:inf 125inf:inf:NaN 126 127# n = -inf 128 129-inf:-inf:NaN 130-inf:-3:0 131-inf:-2:0 132-inf:-1:0 133-inf:0:1 134-inf:1:-inf 135-inf:2:inf 136-inf:3:-inf 137-inf:inf:NaN 138 139# k = inf 140 141-3:inf:NaN 142-2:inf:NaN 143-1:inf:NaN 1440:inf:NaN 1451:inf:NaN 1462:inf:NaN 1473:inf:NaN 148 149# k = -inf 150 151-3:-inf:NaN 152-2:-inf:NaN 153-1:-inf:NaN 1540:-inf:NaN 1551:-inf:NaN 1562:-inf:NaN 1573:-inf:NaN 158 159# n = -15, k = n - 15 ... n + 15 160 161-15:-30:-77558760 162-15:-29:40116600 163-15:-28:-20058300 164-15:-27:9657700 165-15:-26:-4457400 166-15:-25:1961256 167-15:-24:-817190 168-15:-23:319770 169-15:-22:-116280 170-15:-21:38760 171-15:-20:-11628 172-15:-19:3060 173-15:-18:-680 174-15:-17:120 175-15:-16:-15 176-15:-15:1 177-15:-14:0 178-15:-13:0 179-15:-12:0 180-15:-11:0 181-15:-10:0 182-15:-9:0 183-15:-8:0 184-15:-7:0 185-15:-6:0 186-15:-5:0 187-15:-4:0 188-15:-3:0 189-15:-2:0 190-15:-1:0 191-15:0:1 192-15:1:-15 193-15:2:120 194-15:3:-680 195-15:4:3060 196-15:5:-11628 197-15:6:38760 198-15:7:-116280 199-15:8:319770 200-15:9:-817190 201-15:10:1961256 202-15:11:-4457400 203-15:12:9657700 204-15:13:-20058300 205-15:14:40116600 206-15:15:-77558760 207 208# n = -14, k = n - 15 ... n + 15 209 210-14:-29:-37442160 211-14:-28:20058300 212-14:-27:-10400600 213-14:-26:5200300 214-14:-25:-2496144 215-14:-24:1144066 216-14:-23:-497420 217-14:-22:203490 218-14:-21:-77520 219-14:-20:27132 220-14:-19:-8568 221-14:-18:2380 222-14:-17:-560 223-14:-16:105 224-14:-15:-14 225-14:-14:1 226-14:-13:0 227-14:-12:0 228-14:-11:0 229-14:-10:0 230-14:-9:0 231-14:-8:0 232-14:-7:0 233-14:-6:0 234-14:-5:0 235-14:-4:0 236-14:-3:0 237-14:-2:0 238-14:-1:0 239-14:0:1 240-14:1:-14 241-14:2:105 242-14:3:-560 243-14:4:2380 244-14:5:-8568 245-14:6:27132 246-14:7:-77520 247-14:8:203490 248-14:9:-497420 249-14:10:1144066 250-14:11:-2496144 251-14:12:5200300 252-14:13:-10400600 253-14:14:20058300 254-14:15:-37442160 255 256# n = -13, k = n - 15 ... n + 15 257 258-13:-28:-17383860 259-13:-27:9657700 260-13:-26:-5200300 261-13:-25:2704156 262-13:-24:-1352078 263-13:-23:646646 264-13:-22:-293930 265-13:-21:125970 266-13:-20:-50388 267-13:-19:18564 268-13:-18:-6188 269-13:-17:1820 270-13:-16:-455 271-13:-15:91 272-13:-14:-13 273-13:-13:1 274-13:-12:0 275-13:-11:0 276-13:-10:0 277-13:-9:0 278-13:-8:0 279-13:-7:0 280-13:-6:0 281-13:-5:0 282-13:-4:0 283-13:-3:0 284-13:-2:0 285-13:-1:0 286-13:0:1 287-13:1:-13 288-13:2:91 289-13:3:-455 290-13:4:1820 291-13:5:-6188 292-13:6:18564 293-13:7:-50388 294-13:8:125970 295-13:9:-293930 296-13:10:646646 297-13:11:-1352078 298-13:12:2704156 299-13:13:-5200300 300-13:14:9657700 301-13:15:-17383860 302 303# n = -12, k = n - 15 ... n + 15 304 305-12:-27:-7726160 306-12:-26:4457400 307-12:-25:-2496144 308-12:-24:1352078 309-12:-23:-705432 310-12:-22:352716 311-12:-21:-167960 312-12:-20:75582 313-12:-19:-31824 314-12:-18:12376 315-12:-17:-4368 316-12:-16:1365 317-12:-15:-364 318-12:-14:78 319-12:-13:-12 320-12:-12:1 321-12:-11:0 322-12:-10:0 323-12:-9:0 324-12:-8:0 325-12:-7:0 326-12:-6:0 327-12:-5:0 328-12:-4:0 329-12:-3:0 330-12:-2:0 331-12:-1:0 332-12:0:1 333-12:1:-12 334-12:2:78 335-12:3:-364 336-12:4:1365 337-12:5:-4368 338-12:6:12376 339-12:7:-31824 340-12:8:75582 341-12:9:-167960 342-12:10:352716 343-12:11:-705432 344-12:12:1352078 345-12:13:-2496144 346-12:14:4457400 347-12:15:-7726160 348 349# n = -11, k = n - 15 ... n + 15 350 351-11:-26:-3268760 352-11:-25:1961256 353-11:-24:-1144066 354-11:-23:646646 355-11:-22:-352716 356-11:-21:184756 357-11:-20:-92378 358-11:-19:43758 359-11:-18:-19448 360-11:-17:8008 361-11:-16:-3003 362-11:-15:1001 363-11:-14:-286 364-11:-13:66 365-11:-12:-11 366-11:-11:1 367-11:-10:0 368-11:-9:0 369-11:-8:0 370-11:-7:0 371-11:-6:0 372-11:-5:0 373-11:-4:0 374-11:-3:0 375-11:-2:0 376-11:-1:0 377-11:0:1 378-11:1:-11 379-11:2:66 380-11:3:-286 381-11:4:1001 382-11:5:-3003 383-11:6:8008 384-11:7:-19448 385-11:8:43758 386-11:9:-92378 387-11:10:184756 388-11:11:-352716 389-11:12:646646 390-11:13:-1144066 391-11:14:1961256 392-11:15:-3268760 393 394# n = -10, k = n - 15 ... n + 15 395 396-10:-25:-1307504 397-10:-24:817190 398-10:-23:-497420 399-10:-22:293930 400-10:-21:-167960 401-10:-20:92378 402-10:-19:-48620 403-10:-18:24310 404-10:-17:-11440 405-10:-16:5005 406-10:-15:-2002 407-10:-14:715 408-10:-13:-220 409-10:-12:55 410-10:-11:-10 411-10:-10:1 412-10:-9:0 413-10:-8:0 414-10:-7:0 415-10:-6:0 416-10:-5:0 417-10:-4:0 418-10:-3:0 419-10:-2:0 420-10:-1:0 421-10:0:1 422-10:1:-10 423-10:2:55 424-10:3:-220 425-10:4:715 426-10:5:-2002 427-10:6:5005 428-10:7:-11440 429-10:8:24310 430-10:9:-48620 431-10:10:92378 432-10:11:-167960 433-10:12:293930 434-10:13:-497420 435-10:14:817190 436-10:15:-1307504 437 438# n = -9, k = n - 15 ... n + 15 439 440-9:-24:-490314 441-9:-23:319770 442-9:-22:-203490 443-9:-21:125970 444-9:-20:-75582 445-9:-19:43758 446-9:-18:-24310 447-9:-17:12870 448-9:-16:-6435 449-9:-15:3003 450-9:-14:-1287 451-9:-13:495 452-9:-12:-165 453-9:-11:45 454-9:-10:-9 455-9:-9:1 456-9:-8:0 457-9:-7:0 458-9:-6:0 459-9:-5:0 460-9:-4:0 461-9:-3:0 462-9:-2:0 463-9:-1:0 464-9:0:1 465-9:1:-9 466-9:2:45 467-9:3:-165 468-9:4:495 469-9:5:-1287 470-9:6:3003 471-9:7:-6435 472-9:8:12870 473-9:9:-24310 474-9:10:43758 475-9:11:-75582 476-9:12:125970 477-9:13:-203490 478-9:14:319770 479-9:15:-490314 480 481# n = -8, k = n - 15 ... n + 15 482 483-8:-23:-170544 484-8:-22:116280 485-8:-21:-77520 486-8:-20:50388 487-8:-19:-31824 488-8:-18:19448 489-8:-17:-11440 490-8:-16:6435 491-8:-15:-3432 492-8:-14:1716 493-8:-13:-792 494-8:-12:330 495-8:-11:-120 496-8:-10:36 497-8:-9:-8 498-8:-8:1 499-8:-7:0 500-8:-6:0 501-8:-5:0 502-8:-4:0 503-8:-3:0 504-8:-2:0 505-8:-1:0 506-8:0:1 507-8:1:-8 508-8:2:36 509-8:3:-120 510-8:4:330 511-8:5:-792 512-8:6:1716 513-8:7:-3432 514-8:8:6435 515-8:9:-11440 516-8:10:19448 517-8:11:-31824 518-8:12:50388 519-8:13:-77520 520-8:14:116280 521-8:15:-170544 522 523# n = -7, k = n - 15 ... n + 15 524 525-7:-22:-54264 526-7:-21:38760 527-7:-20:-27132 528-7:-19:18564 529-7:-18:-12376 530-7:-17:8008 531-7:-16:-5005 532-7:-15:3003 533-7:-14:-1716 534-7:-13:924 535-7:-12:-462 536-7:-11:210 537-7:-10:-84 538-7:-9:28 539-7:-8:-7 540-7:-7:1 541-7:-6:0 542-7:-5:0 543-7:-4:0 544-7:-3:0 545-7:-2:0 546-7:-1:0 547-7:0:1 548-7:1:-7 549-7:2:28 550-7:3:-84 551-7:4:210 552-7:5:-462 553-7:6:924 554-7:7:-1716 555-7:8:3003 556-7:9:-5005 557-7:10:8008 558-7:11:-12376 559-7:12:18564 560-7:13:-27132 561-7:14:38760 562-7:15:-54264 563 564# n = -6, k = n - 15 ... n + 15 565 566-6:-21:-15504 567-6:-20:11628 568-6:-19:-8568 569-6:-18:6188 570-6:-17:-4368 571-6:-16:3003 572-6:-15:-2002 573-6:-14:1287 574-6:-13:-792 575-6:-12:462 576-6:-11:-252 577-6:-10:126 578-6:-9:-56 579-6:-8:21 580-6:-7:-6 581-6:-6:1 582-6:-5:0 583-6:-4:0 584-6:-3:0 585-6:-2:0 586-6:-1:0 587-6:0:1 588-6:1:-6 589-6:2:21 590-6:3:-56 591-6:4:126 592-6:5:-252 593-6:6:462 594-6:7:-792 595-6:8:1287 596-6:9:-2002 597-6:10:3003 598-6:11:-4368 599-6:12:6188 600-6:13:-8568 601-6:14:11628 602-6:15:-15504 603 604# n = -5, k = n - 15 ... n + 15 605 606-5:-20:-3876 607-5:-19:3060 608-5:-18:-2380 609-5:-17:1820 610-5:-16:-1365 611-5:-15:1001 612-5:-14:-715 613-5:-13:495 614-5:-12:-330 615-5:-11:210 616-5:-10:-126 617-5:-9:70 618-5:-8:-35 619-5:-7:15 620-5:-6:-5 621-5:-5:1 622-5:-4:0 623-5:-3:0 624-5:-2:0 625-5:-1:0 626-5:0:1 627-5:1:-5 628-5:2:15 629-5:3:-35 630-5:4:70 631-5:5:-126 632-5:6:210 633-5:7:-330 634-5:8:495 635-5:9:-715 636-5:10:1001 637-5:11:-1365 638-5:12:1820 639-5:13:-2380 640-5:14:3060 641-5:15:-3876 642 643# n = -4, k = n - 15 ... n + 15 644 645-4:-19:-816 646-4:-18:680 647-4:-17:-560 648-4:-16:455 649-4:-15:-364 650-4:-14:286 651-4:-13:-220 652-4:-12:165 653-4:-11:-120 654-4:-10:84 655-4:-9:-56 656-4:-8:35 657-4:-7:-20 658-4:-6:10 659-4:-5:-4 660-4:-4:1 661-4:-3:0 662-4:-2:0 663-4:-1:0 664-4:0:1 665-4:1:-4 666-4:2:10 667-4:3:-20 668-4:4:35 669-4:5:-56 670-4:6:84 671-4:7:-120 672-4:8:165 673-4:9:-220 674-4:10:286 675-4:11:-364 676-4:12:455 677-4:13:-560 678-4:14:680 679-4:15:-816 680 681# n = -3, k = n - 15 ... n + 15 682 683-3:-18:-136 684-3:-17:120 685-3:-16:-105 686-3:-15:91 687-3:-14:-78 688-3:-13:66 689-3:-12:-55 690-3:-11:45 691-3:-10:-36 692-3:-9:28 693-3:-8:-21 694-3:-7:15 695-3:-6:-10 696-3:-5:6 697-3:-4:-3 698-3:-3:1 699-3:-2:0 700-3:-1:0 701-3:0:1 702-3:1:-3 703-3:2:6 704-3:3:-10 705-3:4:15 706-3:5:-21 707-3:6:28 708-3:7:-36 709-3:8:45 710-3:9:-55 711-3:10:66 712-3:11:-78 713-3:12:91 714-3:13:-105 715-3:14:120 716-3:15:-136 717 718# n = -2, k = n - 15 ... n + 15 719 720-2:-17:-16 721-2:-16:15 722-2:-15:-14 723-2:-14:13 724-2:-13:-12 725-2:-12:11 726-2:-11:-10 727-2:-10:9 728-2:-9:-8 729-2:-8:7 730-2:-7:-6 731-2:-6:5 732-2:-5:-4 733-2:-4:3 734-2:-3:-2 735-2:-2:1 736-2:-1:0 737-2:0:1 738-2:1:-2 739-2:2:3 740-2:3:-4 741-2:4:5 742-2:5:-6 743-2:6:7 744-2:7:-8 745-2:8:9 746-2:9:-10 747-2:10:11 748-2:11:-12 749-2:12:13 750-2:13:-14 751-2:14:15 752-2:15:-16 753 754# n = -1, k = n - 15 ... n + 15 755 756-1:-16:-1 757-1:-15:1 758-1:-14:-1 759-1:-13:1 760-1:-12:-1 761-1:-11:1 762-1:-10:-1 763-1:-9:1 764-1:-8:-1 765-1:-7:1 766-1:-6:-1 767-1:-5:1 768-1:-4:-1 769-1:-3:1 770-1:-2:-1 771-1:-1:1 772-1:0:1 773-1:1:-1 774-1:2:1 775-1:3:-1 776-1:4:1 777-1:5:-1 778-1:6:1 779-1:7:-1 780-1:8:1 781-1:9:-1 782-1:10:1 783-1:11:-1 784-1:12:1 785-1:13:-1 786-1:14:1 787-1:15:-1 788 789# n = 0, k = n - 15 ... n + 15 790 7910:-15:0 7920:-14:0 7930:-13:0 7940:-12:0 7950:-11:0 7960:-10:0 7970:-9:0 7980:-8:0 7990:-7:0 8000:-6:0 8010:-5:0 8020:-4:0 8030:-3:0 8040:-2:0 8050:-1:0 8060:0:1 8070:1:0 8080:2:0 8090:3:0 8100:4:0 8110:5:0 8120:6:0 8130:7:0 8140:8:0 8150:9:0 8160:10:0 8170:11:0 8180:12:0 8190:13:0 8200:14:0 8210:15:0 822 823# n = 1, k = n - 15 ... n + 15 824 8251:-15:0 8261:-14:0 8271:-13:0 8281:-12:0 8291:-11:0 8301:-10:0 8311:-9:0 8321:-8:0 8331:-7:0 8341:-6:0 8351:-5:0 8361:-4:0 8371:-3:0 8381:-2:0 8391:-1:0 8401:0:1 8411:1:1 8421:2:0 8431:3:0 8441:4:0 8451:5:0 8461:6:0 8471:7:0 8481:8:0 8491:9:0 8501:10:0 8511:11:0 8521:12:0 8531:13:0 8541:14:0 8551:15:0 8561:16:0 857 858# n = 2, k = n - 15 ... n + 15 859 8602:-15:0 8612:-14:0 8622:-13:0 8632:-12:0 8642:-11:0 8652:-10:0 8662:-9:0 8672:-8:0 8682:-7:0 8692:-6:0 8702:-5:0 8712:-4:0 8722:-3:0 8732:-2:0 8742:-1:0 8752:0:1 8762:1:2 8772:2:1 8782:3:0 8792:4:0 8802:5:0 8812:6:0 8822:7:0 8832:8:0 8842:9:0 8852:10:0 8862:11:0 8872:12:0 8882:13:0 8892:14:0 8902:15:0 8912:16:0 8922:17:0 893 894# n = 3, k = n - 15 ... n + 15 895 8963:-15:0 8973:-14:0 8983:-13:0 8993:-12:0 9003:-11:0 9013:-10:0 9023:-9:0 9033:-8:0 9043:-7:0 9053:-6:0 9063:-5:0 9073:-4:0 9083:-3:0 9093:-2:0 9103:-1:0 9113:0:1 9123:1:3 9133:2:3 9143:3:1 9153:4:0 9163:5:0 9173:6:0 9183:7:0 9193:8:0 9203:9:0 9213:10:0 9223:11:0 9233:12:0 9243:13:0 9253:14:0 9263:15:0 9273:16:0 9283:17:0 9293:18:0 930 931# n = 4, k = n - 15 ... n + 15 932 9334:-15:0 9344:-14:0 9354:-13:0 9364:-12:0 9374:-11:0 9384:-10:0 9394:-9:0 9404:-8:0 9414:-7:0 9424:-6:0 9434:-5:0 9444:-4:0 9454:-3:0 9464:-2:0 9474:-1:0 9484:0:1 9494:1:4 9504:2:6 9514:3:4 9524:4:1 9534:5:0 9544:6:0 9554:7:0 9564:8:0 9574:9:0 9584:10:0 9594:11:0 9604:12:0 9614:13:0 9624:14:0 9634:15:0 9644:16:0 9654:17:0 9664:18:0 9674:19:0 968 969# n = 5, k = n - 15 ... n + 15 970 9715:-15:0 9725:-14:0 9735:-13:0 9745:-12:0 9755:-11:0 9765:-10:0 9775:-9:0 9785:-8:0 9795:-7:0 9805:-6:0 9815:-5:0 9825:-4:0 9835:-3:0 9845:-2:0 9855:-1:0 9865:0:1 9875:1:5 9885:2:10 9895:3:10 9905:4:5 9915:5:1 9925:6:0 9935:7:0 9945:8:0 9955:9:0 9965:10:0 9975:11:0 9985:12:0 9995:13:0 10005:14:0 10015:15:0 10025:16:0 10035:17:0 10045:18:0 10055:19:0 10065:20:0 1007 1008# n = 6, k = n - 15 ... n + 15 1009 10106:-15:0 10116:-14:0 10126:-13:0 10136:-12:0 10146:-11:0 10156:-10:0 10166:-9:0 10176:-8:0 10186:-7:0 10196:-6:0 10206:-5:0 10216:-4:0 10226:-3:0 10236:-2:0 10246:-1:0 10256:0:1 10266:1:6 10276:2:15 10286:3:20 10296:4:15 10306:5:6 10316:6:1 10326:7:0 10336:8:0 10346:9:0 10356:10:0 10366:11:0 10376:12:0 10386:13:0 10396:14:0 10406:15:0 10416:16:0 10426:17:0 10436:18:0 10446:19:0 10456:20:0 10466:21:0 1047 1048# n = 7, k = n - 15 ... n + 15 1049 10507:-15:0 10517:-14:0 10527:-13:0 10537:-12:0 10547:-11:0 10557:-10:0 10567:-9:0 10577:-8:0 10587:-7:0 10597:-6:0 10607:-5:0 10617:-4:0 10627:-3:0 10637:-2:0 10647:-1:0 10657:0:1 10667:1:7 10677:2:21 10687:3:35 10697:4:35 10707:5:21 10717:6:7 10727:7:1 10737:8:0 10747:9:0 10757:10:0 10767:11:0 10777:12:0 10787:13:0 10797:14:0 10807:15:0 10817:16:0 10827:17:0 10837:18:0 10847:19:0 10857:20:0 10867:21:0 10877:22:0 1088 1089# n = 8, k = n - 15 ... n + 15 1090 10918:-15:0 10928:-14:0 10938:-13:0 10948:-12:0 10958:-11:0 10968:-10:0 10978:-9:0 10988:-8:0 10998:-7:0 11008:-6:0 11018:-5:0 11028:-4:0 11038:-3:0 11048:-2:0 11058:-1:0 11068:0:1 11078:1:8 11088:2:28 11098:3:56 11108:4:70 11118:5:56 11128:6:28 11138:7:8 11148:8:1 11158:9:0 11168:10:0 11178:11:0 11188:12:0 11198:13:0 11208:14:0 11218:15:0 11228:16:0 11238:17:0 11248:18:0 11258:19:0 11268:20:0 11278:21:0 11288:22:0 11298:23:0 1130 1131# n = 9, k = n - 15 ... n + 15 1132 11339:-15:0 11349:-14:0 11359:-13:0 11369:-12:0 11379:-11:0 11389:-10:0 11399:-9:0 11409:-8:0 11419:-7:0 11429:-6:0 11439:-5:0 11449:-4:0 11459:-3:0 11469:-2:0 11479:-1:0 11489:0:1 11499:1:9 11509:2:36 11519:3:84 11529:4:126 11539:5:126 11549:6:84 11559:7:36 11569:8:9 11579:9:1 11589:10:0 11599:11:0 11609:12:0 11619:13:0 11629:14:0 11639:15:0 11649:16:0 11659:17:0 11669:18:0 11679:19:0 11689:20:0 11699:21:0 11709:22:0 11719:23:0 11729:24:0 1173 1174# n = 10, k = n - 15 ... n + 15 1175 117610:-15:0 117710:-14:0 117810:-13:0 117910:-12:0 118010:-11:0 118110:-10:0 118210:-9:0 118310:-8:0 118410:-7:0 118510:-6:0 118610:-5:0 118710:-4:0 118810:-3:0 118910:-2:0 119010:-1:0 119110:0:1 119210:1:10 119310:2:45 119410:3:120 119510:4:210 119610:5:252 119710:6:210 119810:7:120 119910:8:45 120010:9:10 120110:10:1 120210:11:0 120310:12:0 120410:13:0 120510:14:0 120610:15:0 120710:16:0 120810:17:0 120910:18:0 121010:19:0 121110:20:0 121210:21:0 121310:22:0 121410:23:0 121510:24:0 121610:25:0 1217 1218# n = 11, k = n - 15 ... n + 15 1219 122011:-15:0 122111:-14:0 122211:-13:0 122311:-12:0 122411:-11:0 122511:-10:0 122611:-9:0 122711:-8:0 122811:-7:0 122911:-6:0 123011:-5:0 123111:-4:0 123211:-3:0 123311:-2:0 123411:-1:0 123511:0:1 123611:1:11 123711:2:55 123811:3:165 123911:4:330 124011:5:462 124111:6:462 124211:7:330 124311:8:165 124411:9:55 124511:10:11 124611:11:1 124711:12:0 124811:13:0 124911:14:0 125011:15:0 125111:16:0 125211:17:0 125311:18:0 125411:19:0 125511:20:0 125611:21:0 125711:22:0 125811:23:0 125911:24:0 126011:25:0 126111:26:0 1262 1263# n = 12, k = n - 15 ... n + 15 1264 126512:-15:0 126612:-14:0 126712:-13:0 126812:-12:0 126912:-11:0 127012:-10:0 127112:-9:0 127212:-8:0 127312:-7:0 127412:-6:0 127512:-5:0 127612:-4:0 127712:-3:0 127812:-2:0 127912:-1:0 128012:0:1 128112:1:12 128212:2:66 128312:3:220 128412:4:495 128512:5:792 128612:6:924 128712:7:792 128812:8:495 128912:9:220 129012:10:66 129112:11:12 129212:12:1 129312:13:0 129412:14:0 129512:15:0 129612:16:0 129712:17:0 129812:18:0 129912:19:0 130012:20:0 130112:21:0 130212:22:0 130312:23:0 130412:24:0 130512:25:0 130612:26:0 130712:27:0 1308 1309# n = 13, k = n - 15 ... n + 15 1310 131113:-15:0 131213:-14:0 131313:-13:0 131413:-12:0 131513:-11:0 131613:-10:0 131713:-9:0 131813:-8:0 131913:-7:0 132013:-6:0 132113:-5:0 132213:-4:0 132313:-3:0 132413:-2:0 132513:-1:0 132613:0:1 132713:1:13 132813:2:78 132913:3:286 133013:4:715 133113:5:1287 133213:6:1716 133313:7:1716 133413:8:1287 133513:9:715 133613:10:286 133713:11:78 133813:12:13 133913:13:1 134013:14:0 134113:15:0 134213:16:0 134313:17:0 134413:18:0 134513:19:0 134613:20:0 134713:21:0 134813:22:0 134913:23:0 135013:24:0 135113:25:0 135213:26:0 135313:27:0 135413:28:0 1355 1356# n = 14, k = n - 15 ... n + 15 1357 135814:-15:0 135914:-14:0 136014:-13:0 136114:-12:0 136214:-11:0 136314:-10:0 136414:-9:0 136514:-8:0 136614:-7:0 136714:-6:0 136814:-5:0 136914:-4:0 137014:-3:0 137114:-2:0 137214:-1:0 137314:0:1 137414:1:14 137514:2:91 137614:3:364 137714:4:1001 137814:5:2002 137914:6:3003 138014:7:3432 138114:8:3003 138214:9:2002 138314:10:1001 138414:11:364 138514:12:91 138614:13:14 138714:14:1 138814:15:0 138914:16:0 139014:17:0 139114:18:0 139214:19:0 139314:20:0 139414:21:0 139514:22:0 139614:23:0 139714:24:0 139814:25:0 139914:26:0 140014:27:0 140114:28:0 140214:29:0 1403 1404# n = 15, k = n - 15 ... n + 15 1405 140615:-15:0 140715:-14:0 140815:-13:0 140915:-12:0 141015:-11:0 141115:-10:0 141215:-9:0 141315:-8:0 141415:-7:0 141515:-6:0 141615:-5:0 141715:-4:0 141815:-3:0 141915:-2:0 142015:-1:0 142115:0:1 142215:1:15 142315:2:105 142415:3:455 142515:4:1365 142615:5:3003 142715:6:5005 142815:7:6435 142915:8:6435 143015:9:5005 143115:10:3003 143215:11:1365 143315:12:455 143415:13:105 143515:14:15 143615:15:1 143715:16:0 143815:17:0 143915:18:0 144015:19:0 144115:20:0 144215:21:0 144315:22:0 144415:23:0 144515:24:0 144615:25:0 144715:26:0 144815:27:0 144915:28:0 145015:29:0 145115:30:0 1452