0s autopkgtest [07:04:39]: starting date and time: 2026-02-10 07:04:39+0000 0s autopkgtest [07:04:39]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [07:04:39]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.2qd1lnyq/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:ruby-concurrent --apt-upgrade ruby-hamster --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=ruby-concurrent/1.3.6-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-ppc64el-4.secgroup --name adt-resolute-ppc64el-ruby-hamster-20260210-070438-juju-7f2275-prod-proposed-migration-environment-2-3731854e-6d41-4bf0-a010-e699fb4ba8e6 --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-ppc64el-ruby-hamster-20260210-070438-juju-7f2275-prod-proposed-migration-environment-2-3731854e-6d41-4bf0-a010-e699fb4ba8e6 from image adt/ubuntu-resolute-ppc64el-server-20260209.img (UUID f7f31435-4cd1-4090-aa55-59cfefa097ca)... 106s autopkgtest [07:06:25]: testbed dpkg architecture: ppc64el 106s autopkgtest [07:06:25]: testbed apt version: 3.1.15 107s autopkgtest [07:06:26]: @@@@@@@@@@@@@@@@@@@@ test bed setup 107s autopkgtest [07:06:26]: testbed release detected to be: None 108s autopkgtest [07:06:27]: updating testbed package index (apt update) 108s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 108s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 108s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 108s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 108s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [178 kB] 108s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [31.1 kB] 108s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1727 kB] 110s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [261 kB] 110s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [1728 kB] 112s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [20.2 kB] 112s Fetched 4069 kB in 4s (945 kB/s) 113s Reading package lists... 114s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 114s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 114s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 114s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 115s Reading package lists... 115s Reading package lists... 115s Building dependency tree... 115s Reading state information... 115s Calculating upgrade... 115s The following NEW packages will be installed: 115s gcc-16-base 115s The following packages will be upgraded: 115s cryptsetup-bin dracut-install iproute2 iptables libatomic1 libbrotli1 115s libcryptsetup12 libgcc-s1 libip4tc2 libip6tc2 libstdc++6 libxtables12 wget 115s 13 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 115s Need to get 4597 kB of archives. 115s After this operation, 279 kB of additional disk space will be used. 115s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-16-base ppc64el 16-20260208-1ubuntu1 [59.7 kB] 115s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgcc-s1 ppc64el 16-20260208-1ubuntu1 [39.3 kB] 115s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el iptables ppc64el 1.8.11-2ubuntu3 [464 kB] 115s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el libip4tc2 ppc64el 1.8.11-2ubuntu3 [27.8 kB] 115s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el libip6tc2 ppc64el 1.8.11-2ubuntu3 [28.2 kB] 115s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el libxtables12 ppc64el 1.8.11-2ubuntu3 [41.2 kB] 115s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el iproute2 ppc64el 6.18.0-1ubuntu1 [1458 kB] 117s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libatomic1 ppc64el 16-20260208-1ubuntu1 [11.0 kB] 117s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el libcryptsetup12 ppc64el 2:2.8.0-1ubuntu3 [404 kB] 117s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el libstdc++6 ppc64el 16-20260208-1ubuntu1 [930 kB] 118s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el wget ppc64el 1.25.0-2ubuntu4 [401 kB] 118s Get:12 http://ftpmaster.internal/ubuntu resolute/main ppc64el cryptsetup-bin ppc64el 2:2.8.0-1ubuntu3 [250 kB] 118s Get:13 http://ftpmaster.internal/ubuntu resolute/main ppc64el dracut-install ppc64el 109-11ubuntu1 [51.3 kB] 118s Get:14 http://ftpmaster.internal/ubuntu resolute/main ppc64el libbrotli1 ppc64el 1.2.0-3 [431 kB] 118s dpkg-preconfigure: unable to re-open stdin: No such file or directory 118s Fetched 4597 kB in 3s (1781 kB/s) 118s Selecting previously unselected package gcc-16-base:ppc64el. 119s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 122003 files and directories currently installed.) 119s Preparing to unpack .../gcc-16-base_16-20260208-1ubuntu1_ppc64el.deb ... 119s Unpacking gcc-16-base:ppc64el (16-20260208-1ubuntu1) ... 119s Setting up gcc-16-base:ppc64el (16-20260208-1ubuntu1) ... 119s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 122008 files and directories currently installed.) 119s Preparing to unpack .../libgcc-s1_16-20260208-1ubuntu1_ppc64el.deb ... 119s Unpacking libgcc-s1:ppc64el (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 119s Setting up libgcc-s1:ppc64el (16-20260208-1ubuntu1) ... 119s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 122008 files and directories currently installed.) 119s Preparing to unpack .../00-iptables_1.8.11-2ubuntu3_ppc64el.deb ... 119s Unpacking iptables (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 120s Preparing to unpack .../01-libip4tc2_1.8.11-2ubuntu3_ppc64el.deb ... 120s Unpacking libip4tc2:ppc64el (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 120s Preparing to unpack .../02-libip6tc2_1.8.11-2ubuntu3_ppc64el.deb ... 120s Unpacking libip6tc2:ppc64el (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 120s Preparing to unpack .../03-libxtables12_1.8.11-2ubuntu3_ppc64el.deb ... 120s Unpacking libxtables12:ppc64el (1.8.11-2ubuntu3) over (1.8.11-2ubuntu2) ... 121s Preparing to unpack .../04-iproute2_6.18.0-1ubuntu1_ppc64el.deb ... 121s Unpacking iproute2 (6.18.0-1ubuntu1) over (6.16.0-1ubuntu3) ... 121s Preparing to unpack .../05-libatomic1_16-20260208-1ubuntu1_ppc64el.deb ... 121s Unpacking libatomic1:ppc64el (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 121s Preparing to unpack .../06-libcryptsetup12_2%3a2.8.0-1ubuntu3_ppc64el.deb ... 121s Unpacking libcryptsetup12:ppc64el (2:2.8.0-1ubuntu3) over (2:2.8.0-1ubuntu2) ... 121s Preparing to unpack .../07-libstdc++6_16-20260208-1ubuntu1_ppc64el.deb ... 122s Unpacking libstdc++6:ppc64el (16-20260208-1ubuntu1) over (15.2.0-12ubuntu1) ... 122s Preparing to unpack .../08-wget_1.25.0-2ubuntu4_ppc64el.deb ... 122s Unpacking wget (1.25.0-2ubuntu4) over (1.25.0-2ubuntu3) ... 122s Preparing to unpack .../09-cryptsetup-bin_2%3a2.8.0-1ubuntu3_ppc64el.deb ... 122s Unpacking cryptsetup-bin (2:2.8.0-1ubuntu3) over (2:2.8.0-1ubuntu2) ... 122s Preparing to unpack .../10-dracut-install_109-11ubuntu1_ppc64el.deb ... 122s Unpacking dracut-install (109-11ubuntu1) over (109-9ubuntu1) ... 122s Preparing to unpack .../11-libbrotli1_1.2.0-3_ppc64el.deb ... 122s Unpacking libbrotli1:ppc64el (1.2.0-3) over (1.1.0-2build6) ... 123s Setting up libip4tc2:ppc64el (1.8.11-2ubuntu3) ... 123s Setting up wget (1.25.0-2ubuntu4) ... 123s Setting up libip6tc2:ppc64el (1.8.11-2ubuntu3) ... 123s Setting up libbrotli1:ppc64el (1.2.0-3) ... 123s Setting up libatomic1:ppc64el (16-20260208-1ubuntu1) ... 123s Setting up libxtables12:ppc64el (1.8.11-2ubuntu3) ... 123s Setting up dracut-install (109-11ubuntu1) ... 123s Setting up libcryptsetup12:ppc64el (2:2.8.0-1ubuntu3) ... 123s Setting up libstdc++6:ppc64el (16-20260208-1ubuntu1) ... 123s Setting up cryptsetup-bin (2:2.8.0-1ubuntu3) ... 123s Setting up iptables (1.8.11-2ubuntu3) ... 124s Setting up iproute2 (6.18.0-1ubuntu1) ... 124s Processing triggers for man-db (2.13.1-1build1) ... 127s Processing triggers for install-info (7.2-5) ... 127s Processing triggers for libc-bin (2.42-2ubuntu4) ... 127s autopkgtest [07:06:46]: upgrading testbed (apt dist-upgrade and autopurge) 127s Reading package lists... 128s Building dependency tree... 128s Reading state information... 128s Calculating upgrade... 128s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 128s Reading package lists... 128s Building dependency tree... 128s Reading state information... 128s Solving dependencies... 128s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 131s autopkgtest [07:06:50]: testbed running kernel: Linux 6.19.0-3-generic #3-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 23 20:13:51 UTC 2026 131s autopkgtest [07:06:50]: @@@@@@@@@@@@@@@@@@@@ apt-source ruby-hamster 132s Get:1 http://ftpmaster.internal/ubuntu resolute/universe ruby-hamster 3.0.0-4 (dsc) [1465 B] 132s Get:2 http://ftpmaster.internal/ubuntu resolute/universe ruby-hamster 3.0.0-4 (tar) [129 kB] 132s Get:3 http://ftpmaster.internal/ubuntu resolute/universe ruby-hamster 3.0.0-4 (diff) [4880 B] 132s gpgv: Signature made Wed Jan 26 11:16:04 2022 UTC 132s gpgv: using EDDSA key 84CFFDC21520F88306EC29D152699AB63F9F2BC3 132s gpgv: Can't check signature: No public key 132s dpkg-source: warning: cannot verify inline signature for ./ruby-hamster_3.0.0-4.dsc: no acceptable signature found 133s autopkgtest [07:06:52]: testing package ruby-hamster version 3.0.0-4 133s autopkgtest [07:06:52]: build not needed 133s autopkgtest [07:06:52]: test gem2deb-test-runner: preparing testbed 134s Reading package lists... 134s Building dependency tree... 134s Reading state information... 134s Solving dependencies... 134s The following NEW packages will be installed: 134s gem2deb-test-runner libruby libruby3.3 pry rake ruby ruby-coderay 134s ruby-concurrent ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-hamster 134s ruby-method-source ruby-minitest ruby-net-telnet ruby-power-assert 134s ruby-rbtree ruby-rspec ruby-rspec-core ruby-rspec-expectations 134s ruby-rspec-mocks ruby-rspec-support ruby-ruby2-keywords ruby-rubygems 134s ruby-sorted-set ruby-test-unit ruby-webrick ruby-xmlrpc ruby3.3 134s rubygems-integration 134s 0 upgraded, 30 newly installed, 0 to remove and 0 not upgraded. 134s Need to get 8086 kB of archives. 134s After this operation, 44.3 MB of additional disk space will be used. 134s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el rubygems-integration all 1.19build1 [5666 B] 134s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-csv all 3.3.4-1 [43.0 kB] 134s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-did-you-mean all 1.6.3-2build1 [14.9 kB] 134s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-net-telnet all 0.2.0-1build1 [13.5 kB] 134s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-ruby2-keywords all 0.0.5-1build1 [4398 B] 134s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-webrick all 1.9.1-1build1 [60.9 kB] 134s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-xmlrpc all 0.3.3-2build1 [24.9 kB] 134s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libruby3.3 ppc64el 3.3.8-2ubuntu2 [6368 kB] 142s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby3.3 ppc64el 3.3.8-2ubuntu2 [58.9 kB] 142s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el libruby ppc64el 1:3.3 [5172 B] 142s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-rubygems all 3.6.7-2ubuntu2 [332 kB] 142s Get:12 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby ppc64el 1:3.3 [3666 B] 142s Get:13 http://ftpmaster.internal/ubuntu resolute/main ppc64el rake all 13.2.1-1build1 [45.9 kB] 142s Get:14 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-minitest all 5.26.1-1 [49.3 kB] 142s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-power-assert all 3.0.1-1 [11.4 kB] 142s Get:16 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-test-unit all 3.6.2-1 [67.0 kB] 142s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el gem2deb-test-runner ppc64el 2.2.5 [18.3 kB] 142s Get:18 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-coderay all 1.1.3-8build1 [78.4 kB] 142s Get:19 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-method-source all 1.1.0-1 [8502 B] 142s Get:20 http://ftpmaster.internal/ubuntu resolute/universe ppc64el pry all 0.15.2-1 [122 kB] 142s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el ruby-concurrent all 1.3.6-1 [284 kB] 142s Get:22 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-diff-lcs all 1.5.1-1 [22.8 kB] 142s Get:23 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-hamster all 3.0.0-4 [43.0 kB] 142s Get:24 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rbtree ppc64el 0.4.6-1build3 [28.6 kB] 142s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 142s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 142s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 142s Get:28 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 142s Get:29 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 142s Get:30 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-sorted-set all 1.0.3-3 [4258 B] 143s Fetched 8086 kB in 9s (944 kB/s) 143s Selecting previously unselected package rubygems-integration. 143s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 122011 files and directories currently installed.) 143s Preparing to unpack .../00-rubygems-integration_1.19build1_all.deb ... 143s Unpacking rubygems-integration (1.19build1) ... 143s Selecting previously unselected package ruby-csv. 143s Preparing to unpack .../01-ruby-csv_3.3.4-1_all.deb ... 143s Unpacking ruby-csv (3.3.4-1) ... 143s Selecting previously unselected package ruby-did-you-mean. 143s Preparing to unpack .../02-ruby-did-you-mean_1.6.3-2build1_all.deb ... 143s Unpacking ruby-did-you-mean (1.6.3-2build1) ... 143s Selecting previously unselected package ruby-net-telnet. 143s Preparing to unpack .../03-ruby-net-telnet_0.2.0-1build1_all.deb ... 143s Unpacking ruby-net-telnet (0.2.0-1build1) ... 143s Selecting previously unselected package ruby-ruby2-keywords. 143s Preparing to unpack .../04-ruby-ruby2-keywords_0.0.5-1build1_all.deb ... 143s Unpacking ruby-ruby2-keywords (0.0.5-1build1) ... 143s Selecting previously unselected package ruby-webrick. 143s Preparing to unpack .../05-ruby-webrick_1.9.1-1build1_all.deb ... 143s Unpacking ruby-webrick (1.9.1-1build1) ... 143s Selecting previously unselected package ruby-xmlrpc. 143s Preparing to unpack .../06-ruby-xmlrpc_0.3.3-2build1_all.deb ... 143s Unpacking ruby-xmlrpc (0.3.3-2build1) ... 143s Selecting previously unselected package libruby3.3:ppc64el. 143s Preparing to unpack .../07-libruby3.3_3.3.8-2ubuntu2_ppc64el.deb ... 143s Unpacking libruby3.3:ppc64el (3.3.8-2ubuntu2) ... 143s Selecting previously unselected package ruby3.3. 143s Preparing to unpack .../08-ruby3.3_3.3.8-2ubuntu2_ppc64el.deb ... 143s Unpacking ruby3.3 (3.3.8-2ubuntu2) ... 143s Selecting previously unselected package libruby:ppc64el. 143s Preparing to unpack .../09-libruby_1%3a3.3_ppc64el.deb ... 143s Unpacking libruby:ppc64el (1:3.3) ... 143s Selecting previously unselected package ruby-rubygems. 143s Preparing to unpack .../10-ruby-rubygems_3.6.7-2ubuntu2_all.deb ... 143s Unpacking ruby-rubygems (3.6.7-2ubuntu2) ... 143s Selecting previously unselected package ruby. 143s Preparing to unpack .../11-ruby_1%3a3.3_ppc64el.deb ... 143s Unpacking ruby (1:3.3) ... 143s Selecting previously unselected package rake. 143s Preparing to unpack .../12-rake_13.2.1-1build1_all.deb ... 143s Unpacking rake (13.2.1-1build1) ... 143s Selecting previously unselected package ruby-minitest. 143s Preparing to unpack .../13-ruby-minitest_5.26.1-1_all.deb ... 143s Unpacking ruby-minitest (5.26.1-1) ... 143s Selecting previously unselected package ruby-power-assert. 143s Preparing to unpack .../14-ruby-power-assert_3.0.1-1_all.deb ... 143s Unpacking ruby-power-assert (3.0.1-1) ... 143s Selecting previously unselected package ruby-test-unit. 143s Preparing to unpack .../15-ruby-test-unit_3.6.2-1_all.deb ... 143s Unpacking ruby-test-unit (3.6.2-1) ... 143s Selecting previously unselected package gem2deb-test-runner. 143s Preparing to unpack .../16-gem2deb-test-runner_2.2.5_ppc64el.deb ... 143s Unpacking gem2deb-test-runner (2.2.5) ... 143s Selecting previously unselected package ruby-coderay. 143s Preparing to unpack .../17-ruby-coderay_1.1.3-8build1_all.deb ... 143s Unpacking ruby-coderay (1.1.3-8build1) ... 143s Selecting previously unselected package ruby-method-source. 143s Preparing to unpack .../18-ruby-method-source_1.1.0-1_all.deb ... 143s Unpacking ruby-method-source (1.1.0-1) ... 143s Selecting previously unselected package pry. 143s Preparing to unpack .../19-pry_0.15.2-1_all.deb ... 143s Unpacking pry (0.15.2-1) ... 143s Selecting previously unselected package ruby-concurrent. 144s Preparing to unpack .../20-ruby-concurrent_1.3.6-1_all.deb ... 144s Unpacking ruby-concurrent (1.3.6-1) ... 144s Selecting previously unselected package ruby-diff-lcs. 144s Preparing to unpack .../21-ruby-diff-lcs_1.5.1-1_all.deb ... 144s Unpacking ruby-diff-lcs (1.5.1-1) ... 144s Selecting previously unselected package ruby-hamster. 144s Preparing to unpack .../22-ruby-hamster_3.0.0-4_all.deb ... 144s Unpacking ruby-hamster (3.0.0-4) ... 144s Selecting previously unselected package ruby-rbtree. 144s Preparing to unpack .../23-ruby-rbtree_0.4.6-1build3_ppc64el.deb ... 144s Unpacking ruby-rbtree (0.4.6-1build3) ... 144s Selecting previously unselected package ruby-rspec-support. 144s Preparing to unpack .../24-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 144s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 144s Selecting previously unselected package ruby-rspec-core. 144s Preparing to unpack .../25-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 144s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 144s Selecting previously unselected package ruby-rspec-expectations. 144s Preparing to unpack .../26-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 144s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 144s Selecting previously unselected package ruby-rspec-mocks. 144s Preparing to unpack .../27-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 144s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 144s Selecting previously unselected package ruby-rspec. 144s Preparing to unpack .../28-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 144s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 144s Selecting previously unselected package ruby-sorted-set. 144s Preparing to unpack .../29-ruby-sorted-set_1.0.3-3_all.deb ... 144s Unpacking ruby-sorted-set (1.0.3-3) ... 144s Setting up ruby-ruby2-keywords (0.0.5-1build1) ... 144s Setting up ruby-power-assert (3.0.1-1) ... 144s Setting up rubygems-integration (1.19build1) ... 144s Setting up ruby-concurrent (1.3.6-1) ... 144s Setting up ruby-minitest (5.26.1-1) ... 144s Setting up ruby-method-source (1.1.0-1) ... 144s Setting up ruby-hamster (3.0.0-4) ... 144s Setting up ruby-test-unit (3.6.2-1) ... 144s Setting up ruby-net-telnet (0.2.0-1build1) ... 144s Setting up ruby-csv (3.3.4-1) ... 144s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 144s Setting up ruby-webrick (1.9.1-1build1) ... 144s Setting up ruby-did-you-mean (1.6.3-2build1) ... 144s Setting up ruby-xmlrpc (0.3.3-2build1) ... 144s Setting up rake (13.2.1-1build1) ... 144s Setting up libruby3.3:ppc64el (3.3.8-2ubuntu2) ... 144s Setting up ruby3.3 (3.3.8-2ubuntu2) ... 144s Setting up libruby:ppc64el (1:3.3) ... 144s Setting up ruby (1:3.3) ... 144s Setting up ruby-rbtree (0.4.6-1build3) ... 144s Setting up ruby-coderay (1.1.3-8build1) ... 144s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 144s Setting up pry (0.15.2-1) ... 144s Setting up ruby-diff-lcs (1.5.1-1) ... 144s Setting up ruby-rubygems (3.6.7-2ubuntu2) ... 144s Setting up ruby-sorted-set (1.0.3-3) ... 144s Setting up gem2deb-test-runner (2.2.5) ... 144s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 144s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 144s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 144s Processing triggers for libc-bin (2.42-2ubuntu4) ... 144s Processing triggers for man-db (2.13.1-1build1) ... 145s autopkgtest [07:07:04]: test gem2deb-test-runner: gem2deb-test-runner --autopkgtest --check-dependencies 2>&1 145s autopkgtest [07:07:04]: test gem2deb-test-runner: [----------------------- 145s 145s ┌──────────────────────────────────────────────────────────────────────────────┐ 145s │ Checking Rubygems dependency resolution on ruby3.3 │ 145s └──────────────────────────────────────────────────────────────────────────────┘ 145s 146s RUBYLIB=. GEM_PATH= ruby3.3 -e gem\ \"hamster\" 146s mv lib ./.gem2deb.lib 146s mv ./.gem2deb.lib lib 146s 146s ┌──────────────────────────────────────────────────────────────────────────────┐ 146s │ Run tests for ruby3.3 from debian/ruby-tests.rake │ 146s └──────────────────────────────────────────────────────────────────────────────┘ 146s 146s RUBYLIB=. GEM_PATH= ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake 146s mv lib ./.gem2deb.lib 146s /usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation 147s 147s Hamster::Associable 147s #update_in 147s with one level on existing key 147s Hash passes the value to the block 147s Vector passes the value to the block 147s Hash replaces the value with the result of the block 147s Vector replaces the value with the result of the block 147s Hash should preserve the original 147s Vector should preserve the original 147s with multi-level on existing keys 147s Hash passes the value to the block 147s Vector passes the value to the block 147s Hash replaces the value with the result of the block 147s Vector replaces the value with the result of the block 147s Hash should preserve the original 147s Vector should preserve the original 147s with multi-level creating sub-hashes when keys don't exist 147s Hash passes nil to the block 147s Vector passes nil to the block 147s Hash creates subhashes on the way to set the value 147s Vector creates subhashes on the way to set the value 147s Hash with multi-level including Vector with existing keys 147s passes the value to the block 147s replaces the value with the result of the block 147s should preserve the original 147s Vector with multi-level including Hash with existing keys 147s passes the value to the block 147s replaces the value with the result of the block 147s should preserve the original 147s with empty key_path 147s Hash raises ArguemntError 147s Vector raises ArguemntError 147s 147s Array 147s #to_list 147s returns an equivalent hamster list 147s 147s Enumerable 147s #to_list 147s returns an equivalent list 147s works on Ranges 147s 147s IO 147s #to_list 147s with a File 147s returns an equivalent list 147s with a StringIO 147s returns an equivalent list 147s 147s Hamster::Deque 147s #clear 147s on [] 147s preserves the original 147s returns an empty deque 147s on ["A"] 147s preserves the original 147s returns an empty deque 147s on ["A", "B", "C"] 147s preserves the original 147s returns an empty deque 147s from a subclass 147s returns an instance of the subclass 147s 147s Hamster::Deque 147s .[] 147s with no arguments 147s always returns the same instance 147s returns an empty, frozen deque 147s with a number of items 147s always returns a different instance 147s is the same as repeatedly using #endeque 147s 147s Hamster::Deque 147s on [] 147s returns self 147s on ["A"] 147s returns self 147s on ["A", "B", "C"] 147s returns self 147s on [] 147s returns self 147s on ["A"] 147s returns self 147s on ["A", "B", "C"] 147s returns self 147s 147s Hamster::Deque 147s #dequeue 147s on [] 147s preserves the original 147s returns [] 147s on ["A"] 147s preserves the original 147s returns [] 147s on ["A", "B", "C"] 147s preserves the original 147s returns ["B", "C"] 147s on empty subclass 147s returns emtpy object of same class 147s #shift 147s on [] 147s preserves the original 147s returns [] 147s on ["A"] 147s preserves the original 147s returns [] 147s on ["A", "B", "C"] 147s preserves the original 147s returns ["B", "C"] 147s on empty subclass 147s returns emtpy object of same class 147s 147s Hamster::Deque 147s #empty? 147s on [] 147s returns true 147s on ["A"] 147s returns false 147s on ["A", "B", "C"] 147s returns false 147s after dedequeing an item from ["A", "B", "C"] 147s returns false 147s .empty 147s returns the canonical empty deque 147s from a subclass 147s returns an empty instance of the subclass 147s 147s Hamster::Deque 147s #enqueue 147s on [] with "A" 147s preserves the original 147s returns ["A"] 147s on ["A"] with "B" 147s preserves the original 147s returns ["A", "B"] 147s on ["A"] with "A" 147s preserves the original 147s returns ["A", "A"] 147s on ["A", "B", "C"] with "D" 147s preserves the original 147s returns ["A", "B", "C", "D"] 147s #push 147s on [] with "A" 147s preserves the original 147s returns ["A"] 147s on ["A"] with "B" 147s preserves the original 147s returns ["A", "B"] 147s on ["A"] with "A" 147s preserves the original 147s returns ["A", "A"] 147s on ["A", "B", "C"] with "D" 147s preserves the original 147s returns ["A", "B", "C", "D"] 147s 147s Hamster::Deque 147s #first 147s on [] 147s returns nil 147s on ["A"] 147s returns "A" 147s on ["A", "B", "C"] 147s returns "A" 147s 147s Hamster::Deque 147s #inspect 147s on [] 147s returns "Hamster::Deque[]" 147s returns a string which can be eval'd to get an equivalent object 147s on ["A"] 147s returns "Hamster::Deque[\"A\"]" 147s returns a string which can be eval'd to get an equivalent object 147s on ["A", "B", "C"] 147s returns "Hamster::Deque[\"A\", \"B\", \"C\"]" 147s returns a string which can be eval'd to get an equivalent object 147s 147s Hamster::Deque 147s #last 147s on [] 147s returns nil 147s on ["A"] 147s returns "A" 147s on ["A", "B", "C"] 147s returns "C" 147s 147s Hamster::Deque 147s #marshal_dump/#marshal_load 147s can survive dumping and loading into a new process 147s is still possible to push and pop items after loading 147s 147s Hamster::Deque 147s .new 147s accepts a single enumerable argument and creates a new deque 147s is amenable to overriding of #initialize 147s from a subclass 147s returns a frozen instance of the subclass 147s .[] 147s accepts a variable number of items and creates a new deque 147s 147s Hamster::Deque 147s #pop 147s on [] 147s preserves the original 147s returns [] 147s returns a frozen instance 147s on ["A"] 147s preserves the original 147s returns [] 147s returns a frozen instance 147s on ["A", "B", "C"] 147s preserves the original 147s returns ["A", "B"] 147s returns a frozen instance 147s on empty subclass 147s returns emtpy object of same class 147s 147s Hamster::Deque 147s #pretty_print 147s prints the whole Deque on one line if it fits 147s prints each item on its own line, if not 147s 147s Hamster::Deque 147s #push 147s pushing "A" into [] 147s preserves the original 147s returns ["A"] 147s returns a frozen instance 147s pushing "B" into ["A"] 147s preserves the original 147s returns ["A", "B"] 147s returns a frozen instance 147s pushing "D" into ["A", "B", "C"] 147s preserves the original 147s returns ["A", "B", "C", "D"] 148s returns a frozen instance 148s on a subclass 148s returns an object of same class 148s 148s Hamster::Deque 148s modification (using #push, #pop, #shift, and #unshift) 148s works when applied in many random combinations 148s 148s Hamster::Deque 148s #shift 148s on [] 148s preserves the original 148s returns [] 148s returns a frozen instance 148s on ["A"] 148s preserves the original 148s returns [] 148s returns a frozen instance 148s on ["A", "B", "C"] 148s preserves the original 148s returns ["B", "C"] 148s returns a frozen instance 148s 148s Hamster::Deque 148s #size 148s on [] 148s returns 0 148s on ["A"] 148s returns 1 148s on ["A", "B", "C"] 148s returns 3 148s #length 148s on [] 148s returns 0 148s on ["A"] 148s returns 1 148s on ["A", "B", "C"] 148s returns 3 148s 148s Hamster::Deque 148s #to_a 148s on [] 148s returns [] 148s returns a mutable array 148s on ["A"] 148s returns ["A"] 148s returns a mutable array 148s on ["A", "B", "C"] 148s returns ["A", "B", "C"] 148s returns a mutable array 148s #entries 148s on [] 148s returns [] 148s returns a mutable array 148s on ["A"] 148s returns ["A"] 148s returns a mutable array 148s on ["A", "B", "C"] 148s returns ["A", "B", "C"] 148s returns a mutable array 148s 148s Hamster::Deque 148s #to_ary 148s enables implicit conversion to 148s block parameters 148s method arguments 148s works with splat 148s 148s Hamster::Deque 148s #to_list 148s on [] 148s returns a list containing [] 148s on ["A"] 148s returns a list containing ["A"] 148s on ["A", "B", "C"] 148s returns a list containing ["A", "B", "C"] 148s after dedequeing an item from ["A", "B", "C"] 148s returns a list containing ["B", "C"] 148s 148s Hamster::Deque 148s #unshift 148s on [] with "A" 148s preserves the original 148s returns ["A"] 148s returns a frozen instance 148s on ["A"] with "B" 148s preserves the original 148s returns ["B", "A"] 148s returns a frozen instance 148s on ["A"] with "A" 148s preserves the original 148s returns ["A", "A"] 148s returns a frozen instance 148s on ["A", "B", "C"] with "D" 148s preserves the original 148s returns ["D", "A", "B", "C"] 148s returns a frozen instance 148s 148s Hamster::MutableSet 148s #add? 148s with a unique value 148s returns true 148s modifies the set to include the new value 148s with a duplicate value 148s returns false 148s preserves the original values 148s 148s Hamster::MutableSet 148s #add 148s with a unique value 148s returns self 148s modifies the original set to include new value 148s with a duplicate value 148s returns self 148s preserves the original values 148s 148s Hamster::MutableSet 148s #delete? 148s with an existing value 148s returns true 148s modifies the set to remove the value 148s with a non-existing value 148s returns false 148s preserves the original values 148s 148s Hamster::MutableSet 148s #delete 148s with an existing value 148s returns self 148s modifies the set to remove the value 148s with a non-existing value 148s returns self 148s preserves the original values 148s 148s Hamster::Hash 148s #all? 148s when empty 148s without a block 148s returns true 148s with a block 148s returns true 148s when not empty 148s without a block 148s returns true 148s with a block 148s returns true if the block always returns true 148s returns false if the block ever returns false 148s propagates an exception from the block 148s stops iterating as soon as the block returns false 148s 148s Hamster::Hash 148s #any? 148s when empty 148s with a block returns false 148s with no block returns false 148s when not empty 148s with a block 148s returns true if the block ever returns true (["A", "aye"]) 148s returns false if the block always returns false 148s returns true if the block ever returns true (["B", "bee"]) 148s returns false if the block always returns false 148s returns true if the block ever returns true (["C", "see"]) 148s returns false if the block always returns false 148s returns true if the block ever returns true ([nil, "NIL"]) 148s returns false if the block always returns false 148s propagates exceptions raised in the block 148s stops iterating as soon as the block returns true 148s with no block 148s returns true 148s 148s Hamster::Hash 148s #assoc 148s searches for a key/val pair with a given key 148s returns nil if a matching key is not found 148s returns nil even if there is a default 148s uses #== to compare keys with provided object 148s #rassoc 148s searches for a key/val pair with a given value 148s returns nil if a matching value is not found 148s returns nil even if there is a default 148s uses #== to compare values with provided object 148s 148s Hamster::Hash 148s #clear 148s maintains the default Proc, if there is one 148s on [] 148s preserves the original 148s returns an empty hash 148s on [{"A"=>"aye"}] 148s preserves the original 148s returns an empty hash 148s on [{"A"=>"aye", "B"=>"bee", "C"=>"see"}] 148s preserves the original 148s returns an empty hash 148s on a subclass 148s returns an empty instance of the subclass 148s 148s Hamster::Hash 148s .hash 148s with nothing 148s returns the canonical empty hash 148s with an implicit hash 148s is equivalent to repeatedly using #put 148s with an array of pairs 148s initializes a new Hash 148s with a Hamster::Hash 148s initializes an equivalent Hash 148s 148s Hamster::Hash 148s #dup 148s returns self 148s #clone 148s returns self 148s 148s Hamster::Hash 148s #default_proc 148s returns the default block given when the Hash was created 148s returns nil if no default block was given 148s after a key/val pair are inserted 148s doesn't change 148s after all key/val pairs are filtered out 148s doesn't change 148s after Hash is inverted 148s doesn't change 148s when a slice is taken 148s doesn't change 148s when keys are removed with #except 148s doesn't change 148s when Hash is mapped 148s doesn't change 148s when another Hash is merged in 148s doesn't change 148s 148s Hamster::Hash 148s #delete 148s with an existing key 148s preserves the original 148s returns a copy with the remaining key/value pairs 148s with a non-existing key 148s preserves the original values 148s returns self 148s when removing the last key 148s from a Hash with no default block 148s returns the canonical empty Hash 148s 148s Hamster::Hash 148s #dig 148s returns the value with one argument to dig 148s returns the value in nested hashes 148s returns nil if the key is not present 148s returns nil if you dig out the end of the hash 148s returns nil if a value does not support dig 148s returns the correct value when there is a default proc 148s 148s Hamster::Hash 148s #each 148s with a block (internal iteration) 148s returns self 148s yields all key/value pairs 148s yields key/value pairs in the same order as #each_key and #each_value 148s yields both of a pair of colliding keys 148s yields only the key to a block expecting |key,| 148s with no block 148s returns an Enumerator 148s #each_pair 148s with a block (internal iteration) 148s returns self 148s yields all key/value pairs 148s yields key/value pairs in the same order as #each_key and #each_value 148s yields both of a pair of colliding keys 148s yields only the key to a block expecting |key,| 148s with no block 148s returns an Enumerator 148s #each_key 148s yields all keys 148s with no block 148s returns an Enumerator 148s #each_value 148s yields all values 148s with no block 148s returns an Enumerator 148s 148s Hamster::Hash 148s #each_with_index 148s with a block (internal iteration) 148s returns self 148s yields all key/value pairs with numeric indexes 148s with no block 148s returns an Enumerator 148s 148s Hamster::Hash 148s #empty? 148s returns true for [] 148s returns false for [{"A"=>"aye"}] 148s returns false for [{"A"=>"aye", "B"=>"bee", "C"=>"see"}] 148s returns true for empty hashes which have a default block 148s .empty 148s returns the canonical empty Hash 148s from a subclass 148s returns an empty instance of the subclass 148s calls overridden #initialize when creating empty Hash 148s 148s Hamster::Hash 148s returns true on a large hash which is modified and then modified back again 148s #eql? 148s returns false when comparing with a standard hash 148s returns false when comparing with an arbitrary object 148s returns false when comparing with a subclass of Hamster::Hash 148s #== 148s returns true when comparing with a standard hash 148s returns false when comparing with an arbitrary object 148s returns true when comparing with a subclass of Hamster::Hash 148s #eql? 148s returns true 148s for {} and {} 148s for {} and {} 148s returns false 148s for {"A"=>"aye"} and {} 148s for {} and {"A"=>"aye"} 148s returns false 148s for {} and {"A"=>"aye"} 148s for {"A"=>"aye"} and {} 148s returns true 148s for {"A"=>"aye"} and {"A"=>"aye"} 148s for {"A"=>"aye"} and {"A"=>"aye"} 148s returns false 148s for {"A"=>"aye"} and {"B"=>"bee"} 148s for {"B"=>"bee"} and {"A"=>"aye"} 148s returns false 148s for {"A"=>"aye", "B"=>"bee"} and {"A"=>"aye"} 148s for {"A"=>"aye"} and {"A"=>"aye", "B"=>"bee"} 148s returns false 148s for {"A"=>"aye"} and {"A"=>"aye", "B"=>"bee"} 148s for {"A"=>"aye", "B"=>"bee"} and {"A"=>"aye"} 148s returns true 148s for {"A"=>"aye", "B"=>"bee", "C"=>"see"} and {"A"=>"aye", "B"=>"bee", "C"=>"see"} 148s for {"A"=>"aye", "B"=>"bee", "C"=>"see"} and {"A"=>"aye", "B"=>"bee", "C"=>"see"} 148s returns true 148s for {"C"=>"see", "A"=>"aye", "B"=>"bee"} and {"A"=>"aye", "B"=>"bee", "C"=>"see"} 148s for {"A"=>"aye", "B"=>"bee", "C"=>"see"} and {"C"=>"see", "A"=>"aye", "B"=>"bee"} 148s #== 148s returns true 148s for {} and {} 148s for {} and {} 148s returns false 148s for {"A"=>"aye"} and {} 148s for {} and {"A"=>"aye"} 148s returns false 148s for {} and {"A"=>"aye"} 148s for {"A"=>"aye"} and {} 148s returns true 148s for {"A"=>"aye"} and {"A"=>"aye"} 148s for {"A"=>"aye"} and {"A"=>"aye"} 148s returns false 148s for {"A"=>"aye"} and {"B"=>"bee"} 148s for {"B"=>"bee"} and {"A"=>"aye"} 148s returns false 148s for {"A"=>"aye", "B"=>"bee"} and {"A"=>"aye"} 148s for {"A"=>"aye"} and {"A"=>"aye", "B"=>"bee"} 148s returns false 148s for {"A"=>"aye"} and {"A"=>"aye", "B"=>"bee"} 148s for {"A"=>"aye", "B"=>"bee"} and {"A"=>"aye"} 148s returns true 148s for {"A"=>"aye", "B"=>"bee", "C"=>"see"} and {"A"=>"aye", "B"=>"bee", "C"=>"see"} 148s for {"A"=>"aye", "B"=>"bee", "C"=>"see"} and {"A"=>"aye", "B"=>"bee", "C"=>"see"} 148s returns true 148s for {"C"=>"see", "A"=>"aye", "B"=>"bee"} and {"A"=>"aye", "B"=>"bee", "C"=>"see"} 148s for {"A"=>"aye", "B"=>"bee", "C"=>"see"} and {"C"=>"see", "A"=>"aye", "B"=>"bee"} 148s 148s Hamster::Hash 148s #except 148s works on a large Hash, with many combinations of input 148s with only keys that the Hash has 148s returns a Hash without those values 148s doesn't change the original Hash 148s with keys that the Hash doesn't have 148s returns a Hash without the values that it had keys for 148s doesn't change the original Hash 148s 148s Hamster::Hash 148s #fetch 148s gives precedence to default block over default argument if passed both 148s raises an ArgumentError when not passed one or 2 arguments 148s with no default provided 148s when the key exists 148s returns the value associated with the key 148s when the key does not exist 148s raises a KeyError 148s with a default value 148s when the key exists 148s returns the value associated with the key 148s when the key does not exist 148s returns the default value 148s with a default block 148s when the key exists 148s returns the value associated with the key 148s when the key does not exist 148s invokes the default block with the missing key as paramter 148s 148s Hamster::Hash 148s #fetch_values 148s when the all the requests keys exist 148s returns a vector of values for the given keys 148s when the key does not exist 148s raises a KeyError 148s 148s Hamster::Hash 148s #find 148s stops iterating when the block returns true 148s on [] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye"}] 148s with a block 148s returns ["A", "aye"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye"}] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye"}] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns ["A", "aye"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns ["B", "bee"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns [nil, "NIL"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s #detect 148s stops iterating when the block returns true 148s on [] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye"}] 148s with a block 148s returns ["A", "aye"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye"}] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye"}] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns ["A", "aye"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns ["B", "bee"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns [nil, "NIL"] 148s without a block 148s returns an Enumerator 148s on [{"A"=>"aye", "B"=>"bee", nil=>"NIL"}] 148s with a block 148s returns nil 148s without a block 148s returns an Enumerator 148s 148s Hamster::Hash 148s #flat_map 148s yields each key/val pair 148s returns the concatenation of block return values 148s doesn't change the receiver 148s returns an empty array if only empty arrays are returned by block 148s with no block 148s returns an Enumerator 148s 148s Hamster::Hash 148s #flatten 148s with flatten depth of zero 148s returns a vector of keys/value 148s without array keys or values 148s returns a vector of keys and values 148s doesn't modify the receiver 148s on an empty Hash 148s returns an empty Vector 148s with array keys 148s flattens array keys into returned vector if flatten depth is sufficient 148s doesn't modify the receiver (or its contents) 148s with array values 148s flattens array values into returned vector if flatten depth is sufficient 148s doesn't modify the receiver (or its contents) 148s with vector keys 148s flattens vector keys into returned vector if flatten depth is sufficient 148s with vector values 148s flattens vector values into returned vector if flatten depth is sufficient 148s 148s Hamster::Hash 148s #get 148s uses #hash to look up keys 148s uses #eql? to compare keys with the same hash code 148s does not use #eql? to compare keys with different hash codes 148s with a default block 148s when the key exists 148s returns the value associated with the key 148s does not call the default block even if the key is 'nil' 148s when the key does not exist 148s returns the value from the default block 148s with no default block 148s returns the value ("aye") for an existing key ("A") 148s returns the value ("bee") for an existing key ("B") 148s returns the value ("see") for an existing key ("C") 148s returns the value ("NIL") for an existing key (nil) 148s returns nil for a non-existing key 148s #[] 148s uses #hash to look up keys 148s uses #eql? to compare keys with the same hash code 148s does not use #eql? to compare keys with different hash codes 148s with a default block 148s when the key exists 148s returns the value associated with the key 148s does not call the default block even if the key is 'nil' 148s when the key does not exist 148s returns the value from the default block 148s with no default block 148s returns the value ("aye") for an existing key ("A") 148s returns the value ("bee") for an existing key ("B") 148s returns the value ("see") for an existing key ("C") 148s returns the value ("NIL") for an existing key (nil) 148s returns nil for a non-existing key 148s 148s Hamster::Hash 148s #key? 148s returns true for an existing key ("A") 148s returns true for an existing key ("B") 148s returns true for an existing key ("C") 148s returns true for an existing key (nil) 148s returns true for an existing key (2.0) 148s returns false for a non-existing key 148s uses #eql? for equality 148s returns true if the key is found and maps to nil 148s returns true if the key is found and maps to false 148s #has_key? 148s returns true for an existing key ("A") 148s returns true for an existing key ("B") 148s returns true for an existing key ("C") 148s returns true for an existing key (nil) 148s returns true for an existing key (2.0) 148s returns false for a non-existing key 148s uses #eql? for equality 148s returns true if the key is found and maps to nil 148s returns true if the key is found and maps to false 148s #include? 148s returns true for an existing key ("A") 148s returns true for an existing key ("B") 148s returns true for an existing key ("C") 148s returns true for an existing key (nil) 148s returns true for an existing key (2.0) 148s returns false for a non-existing key 148s uses #eql? for equality 148s returns true if the key is found and maps to nil 148s returns true if the key is found and maps to false 148s #member? 148s returns true for an existing key ("A") 148s returns true for an existing key ("B") 148s returns true for an existing key ("C") 148s returns true for an existing key (nil) 148s returns true for an existing key (2.0) 148s returns false for a non-existing key 148s uses #eql? for equality 148s returns true if the key is found and maps to nil 148s returns true if the key is found and maps to false 148s 148s Hamster::Hash 148s #value? 148s returns true if any key/val pair in Hash has the same value 148s returns false if no key/val pair in Hash has the same value 148s uses #== to check equality 148s works on a large hash 148s #has_value? 148s returns true if any key/val pair in Hash has the same value 148s returns false if no key/val pair in Hash has the same value 148s uses #== to check equality 148s works on a large hash 148s 148s Hamster::Hash 148s #hash 148s values are sufficiently distributed 148s differs given the same keys and different values 148s differs given the same values and different keys 148s generates the same hash value for a hash regardless of the order things were added to it 148s on an empty hash 148s returns 0 148s 148s Hamster::Hash 148s includes Immutable 148s 148s Hamster::Hash 148s #inspect 148s on [] 148s returns "Hamster::Hash[]" 148s on [{"A"=>"aye"}] 148s returns "Hamster::Hash[\"A\" => \"aye\"]" 148s on [{"A"=>"aye", "B"=>"bee", "C"=>"see"}] 148s returns "Hamster::Hash[\"A\" => \"aye\", \"B\" => \"bee\", \"C\" => \"see\"]" 148s on {} 148s returns a string which can be eval'd to get an equivalent object 148s on {"A"=>"aye"} 148s returns a string which can be eval'd to get an equivalent object 148s on {:a=>"aye", :b=>"bee", :c=>"see"} 148s returns a string which can be eval'd to get an equivalent object 148s 148s Hamster::Hash 148s #invert 148s uses the existing keys as values and values as keys 148s will select one key/value pair among multiple which have same value 148s doesn't change the original Hash 148s from a subclass of Hash 148s returns an instance of the subclass 148s 148s Hamster::Hash 148s #key 148s returns a key associated with the given value, if there is one 148s returns nil if there is no key associated with the given value 148s uses #== to compare values for equality 148s doesn't use default block if value is not found 148s 148s Hamster::Hash 148s #keys 148s returns the keys as a set 148s returns frozen String keys 148s 148s Hamster::Hash 148s #map 148s when empty 148s returns self 148s when not empty 148s with a block 148s preserves the original values 148s returns a new hash with the mapped values 148s with no block 148s returns an Enumerator 148s from a subclass 148s returns an instance of the subclass 148s #collect 148s when empty 148s returns self 148s when not empty 148s with a block 148s preserves the original values 148s returns a new hash with the mapped values 148s with no block 148s returns an Enumerator 148s from a subclass 148s returns an instance of the subclass 148s 148s Hamster::Hash 148s #marshal_dump/#marshal_load 148s can survive dumping and loading into a new process 148s is still possible to find items by key after loading 148s 148s Hamster::Hash 148s #merge 148s sets any duplicate key to the value of block if passed a block 148s yields key/value pairs in the same order as #each 148s for {} and {} 148s returns {} when passed a Hamster::Hash 148s returns {} when passed a Ruby Hash 148s doesn't change the original Hashes 148s for {"A"=>"aye"} and {} 148s returns {"A"=>"aye"} when passed a Hamster::Hash 148s returns {"A"=>"aye"} when passed a Ruby Hash 148s doesn't change the original Hashes 148s for {"A"=>"aye"} and {"A"=>"bee"} 148s returns {"A"=>"bee"} when passed a Hamster::Hash 148s returns {"A"=>"bee"} when passed a Ruby Hash 148s doesn't change the original Hashes 148s for {"A"=>"aye"} and {"B"=>"bee"} 148s returns {"A"=>"aye", "B"=>"bee"} when passed a Hamster::Hash 148s returns {"A"=>"aye", "B"=>"bee"} when passed a Ruby Hash 148s doesn't change the original Hashes 148s for [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 25], [26, 26], [27, 27], [28, 28], [29, 29], [30, 30], [31, 31], [32, 32], [33, 33], [34, 34], [35, 35], [36, 36], [37, 37], [38, 38], [39, 39], [40, 40], [41, 41], [42, 42], [43, 43], [44, 44], [45, 45], [46, 46], [47, 47], [48, 48], [49, 49], [50, 50], [51, 51], [52, 52], [53, 53], [54, 54], [55, 55], [56, 56], [57, 57], [58, 58], [59, 59], [60, 60], [61, 61], [62, 62], [63, 63], [64, 64], [65, 65], [66, 66], [67, 67], [68, 68], [69, 69], [70, 70], [71, 71], [72, 72], [73, 73], [74, 74], [75, 75], [76, 76], [77, 77], [78, 78], [79, 79], [80, 80], [81, 81], [82, 82], [83, 83], [84, 84], [85, 85], [86, 86], [87, 87], [88, 88], [89, 89], [90, 90], [91, 91], [92, 92], [93, 93], [94, 94], [95, 95], [96, 96], [97, 97], [98, 98], [99, 99], [100, 100], [101, 101], [102, 102], [103, 103], [104, 104], [105, 105], [106, 106], [107, 107], [108, 108], [109, 109], [110, 110], [111, 111], [112, 112], [113, 113], [114, 114], [115, 115], [116, 116], [117, 117], [118, 118], [119, 119], [120, 120], [121, 121], [122, 122], [123, 123], [124, 124], [125, 125], [126, 126], [127, 127], [128, 128], [129, 129], [130, 130], [131, 131], [132, 132], [133, 133], [134, 134], [135, 135], [136, 136], [137, 137], [138, 138], [139, 139], [140, 140], [141, 141], [142, 142], [143, 143], [144, 144], [145, 145], [146, 146], [147, 147], [148, 148], [149, 149], [150, 150], [151, 151], [152, 152], [153, 153], [154, 154], [155, 155], [156, 156], [157, 157], [158, 158], [159, 159], [160, 160], [161, 161], [162, 162], [163, 163], [164, 164], [165, 165], [166, 166], [167, 167], [168, 168], [169, 169], [170, 170], [171, 171], [172, 172], [173, 173], [174, 174], [175, 175], [176, 176], [177, 177], [178, 178], [179, 179], [180, 180], [181, 181], [182, 182], [183, 183], [184, 184], [185, 185], [186, 186], [187, 187], [188, 188], [189, 189], [190, 190], [191, 191], [192, 192], [193, 193], [194, 194], [195, 195], [196, 196], [197, 197], [198, 198], [199, 199], [200, 200], [201, 201], [202, 202], [203, 203], [204, 204], [205, 205], [206, 206], [207, 207], [208, 208], [209, 209], [210, 210], [211, 211], [212, 212], [213, 213], [214, 214], [215, 215], [216, 216], [217, 217], [218, 218], [219, 219], [220, 220], [221, 221], [222, 222], [223, 223], [224, 224], [225, 225], [226, 226], [227, 227], [228, 228], [229, 229], [230, 230], [231, 231], [232, 232], [233, 233], [234, 234], [235, 235], [236, 236], [237, 237], [238, 238], [239, 239], [240, 240], [241, 241], [242, 242], [243, 243], [244, 244], [245, 245], [246, 246], [247, 247], [248, 248], [249, 249], [250, 250], [251, 251], [252, 252], [253, 253], [254, 254], [255, 255], [256, 256], [257, 257], [258, 258], [259, 259], [260, 260], [261, 261], [262, 262], [263, 263], [264, 264], [265, 265], [266, 266], [267, 267], [268, 268], [269, 269], [270, 270], [271, 271], [272, 272], [273, 273], [274, 274], [275, 275], [276, 276], [277, 277], [278, 278], [279, 279], [280, 280], [281, 281], [282, 282], [283, 283], [284, 284], [285, 285], [286, 286], [287, 287], [288, 288], [289, 289], [290, 290], [291, 291], [292, 292], [293, 293], [294, 294], [295, 295], [296, 296], [297, 297], [298, 298], [299, 299], [300, 300]] and [[150, 150], [151, 151], [152, 152], [153, 153], [154, 154], [155, 155], [156, 156], [157, 157], [158, 158], [159, 159], [160, 160], [161, 161], [162, 162], [163, 163], [164, 164], [165, 165], [166, 166], [167, 167], [168, 168], [169, 169], [170, 170], [171, 171], [172, 172], [173, 173], [174, 174], [175, 175], [176, 176], [177, 177], [178, 178], [179, 179], [180, 180], [181, 181], [182, 182], [183, 183], [184, 184], [185, 185], [186, 186], [187, 187], [188, 188], [189, 189], [190, 190], [191, 191], [192, 192], [193, 193], [194, 194], [195, 195], [196, 196], [197, 197], [198, 198], [199, 199], [200, 200], [201, 201], [202, 202], [203, 203], [204, 204], [205, 205], [206, 206], [207, 207], [208, 208], [209, 209], [210, 210], [211, 211], [212, 212], [213, 213], [214, 214], [215, 215], [216, 216], [217, 217], [218, 218], [219, 219], [220, 220], [221, 221], [222, 222], [223, 223], [224, 224], [225, 225], [226, 226], [227, 227], [228, 228], [229, 229], [230, 230], [231, 231], [232, 232], [233, 233], [234, 234], [235, 235], [236, 236], [237, 237], [238, 238], [239, 239], [240, 240], [241, 241], [242, 242], [243, 243], [244, 244], [245, 245], [246, 246], [247, 247], [248, 248], [249, 249], [250, 250], [251, 251], [252, 252], [253, 253], [254, 254], [255, 255], [256, 256], [257, 257], [258, 258], [259, 259], [260, 260], [261, 261], [262, 262], [263, 263], [264, 264], [265, 265], [266, 266], [267, 267], [268, 268], [269, 269], [270, 270], [271, 271], [272, 272], [273, 273], [274, 274], [275, 275], [276, 276], [277, 277], [278, 278], [279, 279], [280, 280], [281, 281], [282, 282], [283, 283], [284, 284], [285, 285], [286, 286], [287, 287], [288, 288], [289, 289], [290, 290], [291, 291], [292, 292], [293, 293], [294, 294], [295, 295], [296, 296], [297, 297], [298, 298], [299, 299], [300, 300], [301, 301], [302, 302], [303, 303], [304, 304], [305, 305], [306, 306], [307, 307], [308, 308], [309, 309], [310, 310], [311, 311], [312, 312], [313, 313], [314, 314], [315, 315], [316, 316], [317, 317], [318, 318], [319, 319], [320, 320], [321, 321], [322, 322], [323, 323], [324, 324], [325, 325], [326, 326], [327, 327], [328, 328], [329, 329], [330, 330], [331, 331], [332, 332], [333, 333], [334, 334], [335, 335], [336, 336], [337, 337], [338, 338], [339, 339], [340, 340], [341, 341], [342, 342], [343, 343], [344, 344], [345, 345], [346, 346], [347, 347], [348, 348], [349, 349], [350, 350], [351, 351], [352, 352], [353, 353], [354, 354], [355, 355], [356, 356], [357, 357], [358, 358], [359, 359], [360, 360], [361, 361], [362, 362], [363, 363], [364, 364], [365, 365], [366, 366], [367, 367], [368, 368], [369, 369], [370, 370], [371, 371], [372, 372], [373, 373], [374, 374], [375, 375], [376, 376], [377, 377], [378, 378], [379, 379], [380, 380], [381, 381], [382, 382], [383, 383], [384, 384], [385, 385], [386, 386], [387, 387], [388, 388], [389, 389], [390, 390], [391, 391], [392, 392], [393, 393], [394, 394], [395, 395], [396, 396], [397, 397], [398, 398], [399, 399], [400, 400], [401, 401], [402, 402], [403, 403], [404, 404], [405, 405], [406, 406], [407, 407], [408, 408], [409, 409], [410, 410], [411, 411], [412, 412], [413, 413], [414, 414], [415, 415], [416, 416], [417, 417], [418, 418], [419, 419], [420, 420], [421, 421], [422, 422], [423, 423], [424, 424], [425, 425], [426, 426], [427, 427], [428, 428], [429, 429], [430, 430], [431, 431], [432, 432], [433, 433], [434, 434], [435, 435], [436, 436], [437, 437], [438, 438], [439, 439], [440, 440], [441, 441], [442, 442], [443, 443], [444, 444], [445, 445], [446, 446], [447, 447], [448, 448], [449, 449], [450, 450]] 148s returns [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 25], [26, 26], [27, 27], [28, 28], [29, 29], [30, 30], [31, 31], [32, 32], [33, 33], [34, 34], [35, 35], [36, 36], [37, 37], [38, 38], [39, 39], [40, 40], [41, 41], [42, 42], [43, 43], [44, 44], [45, 45], [46, 46], [47, 47], [48, 48], [49, 49], [50, 50], [51, 51], [52, 52], [53, 53], [54, 54], [55, 55], [56, 56], [57, 57], [58, 58], [59, 59], [60, 60], [61, 61], [62, 62], [63, 63], [64, 64], [65, 65], [66, 66], [67, 67], [68, 68], [69, 69], [70, 70], [71, 71], [72, 72], [73, 73], [74, 74], [75, 75], [76, 76], [77, 77], [78, 78], [79, 79], [80, 80], [81, 81], [82, 82], [83, 83], [84, 84], [85, 85], [86, 86], [87, 87], [88, 88], [89, 89], [90, 90], [91, 91], [92, 92], [93, 93], [94, 94], [95, 95], [96, 96], [97, 97], [98, 98], [99, 99], [100, 100], [101, 101], [102, 102], [103, 103], [104, 104], [105, 105], [106, 106], [107, 107], [108, 108], [109, 109], [110, 110], [111, 111], [112, 112], [113, 113], [114, 114], [115, 115], [116, 116], [117, 117], [118, 118], [119, 119], [120, 120], [121, 121], [122, 122], [123, 123], [124, 124], [125, 125], [126, 126], [127, 127], [128, 128], [129, 129], [130, 130], [131, 131], [132, 132], [133, 133], [134, 134], [135, 135], [136, 136], [137, 137], [138, 138], [139, 139], [140, 140], [141, 141], [142, 142], [143, 143], [144, 144], [145, 145], [146, 146], [147, 147], [148, 148], [149, 149], [150, 150], [151, 151], [152, 152], [153, 153], [154, 154], [155, 155], [156, 156], [157, 157], [158, 158], [159, 159], [160, 160], [161, 161], [162, 162], [163, 163], [164, 164], [165, 165], [166, 166], [167, 167], [168, 168], [169, 169], [170, 170], [171, 171], [172, 172], [173, 173], [174, 174], [175, 175], [176, 176], [177, 177], [178, 178], [179, 179], [180, 180], [181, 181], [182, 182], [183, 183], [184, 184], [185, 185], [186, 186], [187, 187], [188, 188], [189, 189], [190, 190], [191, 191], [192, 192], [193, 193], [194, 194], [195, 195], [196, 196], [197, 197], [198, 198], [199, 199], [200, 200], [201, 201], [202, 202], [203, 203], [204, 204], [205, 205], [206, 206], [207, 207], [208, 208], [209, 209], [210, 210], [211, 211], [212, 212], [213, 213], [214, 214], [215, 215], [216, 216], [217, 217], [218, 218], [219, 219], [220, 220], [221, 221], [222, 222], [223, 223], [224, 224], [225, 225], [226, 226], [227, 227], [228, 228], [229, 229], [230, 230], [231, 231], [232, 232], [233, 233], [234, 234], [235, 235], [236, 236], [237, 237], [238, 238], [239, 239], [240, 240], [241, 241], [242, 242], [243, 243], [244, 244], [245, 245], [246, 246], [247, 247], [248, 248], [249, 249], [250, 250], [251, 251], [252, 252], [253, 253], [254, 254], [255, 255], [256, 256], [257, 257], [258, 258], [259, 259], [260, 260], [261, 261], [262, 262], [263, 263], [264, 264], [265, 265], [266, 266], [267, 267], [268, 268], [269, 269], [270, 270], [271, 271], [272, 272], [273, 273], [274, 274], [275, 275], [276, 276], [277, 277], [278, 278], [279, 279], [280, 280], [281, 281], [282, 282], [283, 283], [284, 284], [285, 285], [286, 286], [287, 287], [288, 288], [289, 289], [290, 290], [291, 291], [292, 292], [293, 293], [294, 294], [295, 295], [296, 296], [297, 297], [298, 298], [299, 299], [300, 300], [301, 301], [302, 302], [303, 303], [304, 304], [305, 305], [306, 306], [307, 307], [308, 308], [309, 309], [310, 310], [311, 311], [312, 312], [313, 313], [314, 314], [315, 315], [316, 316], [317, 317], [318, 318], [319, 319], [320, 320], [321, 321], [322, 322], [323, 323], [324, 324], [325, 325], [326, 326], [327, 327], [328, 328], [329, 329], [330, 330], [331, 331], [332, 332], [333, 333], [334, 334], [335, 335], [336, 336], [337, 337], [338, 338], [339, 339], [340, 340], [341, 341], [342, 342], [343, 343], [344, 344], [345, 345], [346, 346], [347, 347], [348, 348], [349, 349], [350, 350], [351, 351], [352, 352], [353, 353], [354, 354], [355, 355], [356, 356], [357, 357], [358, 358], [359, 359], [360, 360], [361, 361], [362, 362], [363, 363], [364, 364], [365, 365], [366, 366], [367, 367], [368, 368], [369, 369], [370, 370], [371, 371], [372, 372], [373, 373], [374, 374], [375, 375], [376, 376], [377, 377], [378, 378], [379, 379], [380, 380], [381, 381], [382, 382], [383, 383], [384, 384], [385, 385], [386, 386], [387, 387], [388, 388], [389, 389], [390, 390], [391, 391], [392, 392], [393, 393], [394, 394], [395, 395], [396, 396], [397, 397], [398, 398], [399, 399], [400, 400], [401, 401], [402, 402], [403, 403], [404, 404], [405, 405], [406, 406], [407, 407], [408, 408], [409, 409], [410, 410], [411, 411], [412, 412], [413, 413], [414, 414], [415, 415], [416, 416], [417, 417], [418, 418], [419, 419], [420, 420], [421, 421], [422, 422], [423, 423], [424, 424], [425, 425], [426, 426], [427, 427], [428, 428], [429, 429], [430, 430], [431, 431], [432, 432], [433, 433], [434, 434], [435, 435], [436, 436], [437, 437], [438, 438], [439, 439], [440, 440], [441, 441], [442, 442], [443, 443], [444, 444], [445, 445], [446, 446], [447, 447], [448, 448], [449, 449], [450, 450]] when passed a Hamster::Hash 148s returns [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10], [11, 11], [12, 12], [13, 13], [14, 14], [15, 15], [16, 16], [17, 17], [18, 18], [19, 19], [20, 20], [21, 21], [22, 22], [23, 23], [24, 24], [25, 25], [26, 26], [27, 27], [28, 28], [29, 29], [30, 30], [31, 31], [32, 32], [33, 33], [34, 34], [35, 35], [36, 36], [37, 37], [38, 38], [39, 39], [40, 40], [41, 41], [42, 42], [43, 43], [44, 44], [45, 45], [46, 46], [47, 47], [48, 48], [49, 49], [50, 50], [51, 51], [52, 52], [53, 53], [54, 54], [55, 55], [56, 56], [57, 57], [58, 58], [59, 59], [60, 60], [61, 61], [62, 62], [63, 63], [64, 64], [65, 65], [66, 66], [67, 67], [68, 68], [69, 69], [70, 70], [71, 71], [72, 72], [73, 73], [74, 74], [75, 75], [76, 76], [77, 77], [78, 78], [79, 79], [80, 80], [81, 81], [82, 82], [83, 83], [84, 84], [85, 85], [86, 86], [87, 87], [88, 88], [89, 89], [90, 90], [91, 91], [92, 92], [93, 93], [94, 94], [95, 95], [96, 96], [97, 97], [98, 98], [99, 99], [100, 100], [101, 101], [102, 102], [103, 103], [104, 104], [105, 105], [106, 106], [107, 107], [108, 108], [109, 109], [110, 110], [111, 111], [112, 112], [113, 113], [114, 114], [115, 115], [116, 116], [117, 117], [118, 118], [119, 119], [120, 120], [121, 121], [122, 122], [123, 123], [124, 124], [125, 125], [126, 126], [127, 127], [128, 128], [129, 129], [130, 130], [131, 131], [132, 132], [133, 133], [134, 134], [135, 135], [136, 136], [137, 137], [138, 138], [139, 139], [140, 140], [141, 141], [142, 142], [143, 143], [144, 144], [145, 145], [146, 146], [147, 147], [148, 148], [149, 149], [150, 150], [151, 151], [152, 152], [153, 153], [154, 154], [155, 155], [156, 156], [157, 157], [158, 158], [159, 159], [160, 160], [161, 161], [162, 162], [163, 163], [164, 164], [165, 165], [166, 166], [167, 167], [168, 168], [169, 169], [170, 170], [171, 171], [172, 172], [173, 173], [174, 174], [175, 175], [176, 176], [177, 177], [178, 178], [179, 179], [180, 180], [181, 181], [182, 182], [183, 183], [184, 184], [185, 185], [186, 186], [187, 187], [188, 188], [189, 189], [190, 190], [191, 191], [192, 192], [193, 193], [194, 194], [195, 195], [196, 196], [197, 197], [198, 198], [199, 199], [200, 200], [201, 201], [202, 202], [203, 203], [204, 204], [205, 205], [206, 206], [207, 207], [208, 208], [209, 209], [210, 210], [211, 211], [212, 212], [213, 213], [214, 214], [215, 215], [216, 216], [217, 217], [218, 218], [219, 219], [220, 220], [221, 221], [222, 222], [223, 223], [224, 224], [225, 225], [226, 226], [227, 227], [228, 228], [229, 229], [230, 230], [231, 231], [232, 232], [233, 233], [234, 234], [235, 235], [236, 236], [237, 237], [238, 238], [239, 239], [240, 240], [241, 241], [242, 242], [243, 243], [244, 244], [245, 245], [246, 246], [247, 247], [248, 248], [249, 249], [250, 250], [251, 251], [252, 252], [253, 253], [254, 254], [255, 255], [256, 256], [257, 257], [258, 258], [259, 259], [260, 260], [261, 261], [262, 262], [263, 263], [264, 264], [265, 265], [266, 266], [267, 267], [268, 268], [269, 269], [270, 270], [271, 271], [272, 272], [273, 273], [274, 274], [275, 275], [276, 276], [277, 277], [278, 278], [279, 279], [280, 280], [281, 281], [282, 282], [283, 283], [284, 284], [285, 285], [286, 286], [287, 287], [288, 288], [289, 289], [290, 290], [291, 291], [292, 292], [293, 293], [294, 294], [295, 295], [296, 296], [297, 297], [298, 298], [299, 299], [300, 300], [301, 301], [302, 302], [303, 303], [304, 304], [305, 305], [306, 306], [307, 307], [308, 308], [309, 309], [310, 310], [311, 311], [312, 312], [313, 313], [314, 314], [315, 315], [316, 316], [317, 317], [318, 318], [319, 319], [320, 320], [321, 321], [322, 322], [323, 323], [324, 324], [325, 325], [326, 326], [327, 327], [328, 328], [329, 329], [330, 330], [331, 331], [332, 332], [333, 333], [334, 334], [335, 335], [336, 336], [337, 337], [338, 338], [339, 339], [340, 340], [341, 341], [342, 342], [343, 343], [344, 344], [345, 345], [346, 346], [347, 347], [348, 348], [349, 349], [350, 350], [351, 351], [352, 352], [353, 353], [354, 354], [355, 355], [356, 356], [357, 357], [358, 358], [359, 359], [360, 360], [361, 361], [362, 362], [363, 363], [364, 364], [365, 365], [366, 366], [367, 367], [368, 368], [369, 369], [370, 370], [371, 371], [372, 372], [373, 373], [374, 374], [375, 375], [376, 376], [377, 377], [378, 378], [379, 379], [380, 380], [381, 381], [382, 382], [383, 383], [384, 384], [385, 385], [386, 386], [387, 387], [388, 388], [389, 389], [390, 390], [391, 391], [392, 392], [393, 393], [394, 394], [395, 395], [396, 396], [397, 397], [398, 398], [399, 399], [400, 400], [401, 401], [402, 402], [403, 403], [404, 404], [405, 405], [406, 406], [407, 407], [408, 408], [409, 409], [410, 410], [411, 411], [412, 412], [413, 413], [414, 414], [415, 415], [416, 416], [417, 417], [418, 418], [419, 419], [420, 420], [421, 421], [422, 422], [423, 423], [424, 424], [425, 425], [426, 426], [427, 427], [428, 428], [429, 429], [430, 430], [431, 431], [432, 432], [433, 433], [434, 434], [435, 435], [436, 436], [437, 437], [438, 438], [439, 439], [440, 440], [441, 441], [442, 442], [443, 443], [444, 444], [445, 445], [446, 446], [447, 447], [448, 448], [449, 449], [450, 450]] when passed a Ruby Hash 148s doesn't change the original Hashes 148s when merging with an empty Hash 148s returns self 148s when merging with subset Hash 148s returns self 148s when called on a subclass 148s returns an instance of the subclass 148s 148s Hamster::Hash 148s #min 148s returns the smallest key/val pair 148s #max 148s returns the largest key/val pair 148s #min_by 148s returns the smallest key/val pair (after passing it through a key function) 148s returns the first key/val pair yielded by #each in case of a tie 148s returns nil if the hash is empty 148s #max_by 148s returns the largest key/val pair (after passing it through a key function) 148s returns the first key/val pair yielded by #each in case of a tie 148s returns nil if the hash is empty 148s 148s Hamster::Hash 148s .new 148s is amenable to overriding of #initialize 148s accepts an array as initializer 148s returns a Hash which doesn't change even if initializer is mutated 148s from a subclass 148s returns a frozen instance of the subclass 148s .[] 148s accepts a Ruby Hash as initializer 148s accepts a Hamster::Hash as initializer 148s accepts an array as initializer 148s can be used with a subclass of Hamster::Hash 148s 148s Hamster::Hash 148s #none? 148s when empty 148s with a block returns true 148s with no block returns true 148s when not empty 148s with a block 148s returns false if the block ever returns true (["A", "aye"]) 148s returns true if the block always returns false 148s stops iterating as soon as the block returns true 148s returns false if the block ever returns true (["B", "bee"]) 148s returns true if the block always returns false 148s stops iterating as soon as the block returns true 148s returns false if the block ever returns true (["C", "see"]) 148s returns true if the block always returns false 148s stops iterating as soon as the block returns true 148s returns false if the block ever returns true ([nil, "NIL"]) 148s returns true if the block always returns false 148s stops iterating as soon as the block returns true 148s with no block 148s returns false 148s 148s Hamster::Hash 148s #partition 148s returns a pair of Hamster::Hashes 148s returns key/val pairs for which predicate is true in first Hash 148s returns key/val pairs for which predicate is false in second Hash 148s doesn't modify the original Hash 148s from a subclass 148s should return instances of the subclass 148s 148s Hamster::Hash 148s #pretty_print 148s prints the whole Hash on one line if it fits 148s prints each key/val pair on its own line, if not 148s prints keys and vals on separate lines, if space is very tight 148s 148s Hamster::Hash 148s #put 148s with a block 148s passes the value to the block 148s replaces the value with the result of the block 148s supports to_proc methods 148s if there is no existing association 148s passes nil to the block 148s stores the result of the block as the new value 148s with a unique key 148s preserves the original 148s returns a copy with the superset of key/value pairs 148s with a duplicate key 148s preserves the original 148s returns a copy with the superset of key/value pairs 148s with duplicate key and identical value 148s returns the original hash unmodified 148s with big hash (force nested tries) 148s returns the original hash unmodified for all changes 148s with unequal keys which hash to the same value 148s stores and can retrieve both 148s when a String is inserted as key and then mutated 148s is not affected 148s 148s Hamster::Hash 148s #reduce 148s when empty 148s returns the memo 148s when not empty 148s with a block 148s returns the final memo 148s with no block 148s uses a passed string as the name of a method to use instead 148s uses a passed symbol as the name of a method to use instead 148s #inject 148s when empty 148s returns the memo 148s when not empty 148s with a block 148s returns the final memo 148s with no block 148s uses a passed string as the name of a method to use instead 148s uses a passed symbol as the name of a method to use instead 148s 148s Hamster::Hash 148s #reject 148s when nothing matches 148s returns self 148s when only some things match 148s with a block 148s preserves the original 148s returns a set with the matching values 148s yields entries in the same order as #each 148s with no block 148s returns an Enumerator 148s on a large hash, with many combinations of input 148s still works 148s #delete_if 148s when nothing matches 148s returns self 148s when only some things match 148s with a block 148s preserves the original 148s returns a set with the matching values 148s yields entries in the same order as #each 148s with no block 148s returns an Enumerator 148s on a large hash, with many combinations of input 148s still works 148s 148s Hamster::Hash 148s #reverse_each 148s with a block 148s returns self 148s yields all key/value pairs in the opposite order as #each 148s with no block 148s returns an Enumerator 148s 148s Hamster::Hash 148s #sample 148s returns a randomly chosen item 148s 148s Hamster::Hash 148s #select 148s works on a large hash, with many combinations of input 148s when everything matches 148s returns self 148s when only some things match 148s yields entries as [key, value] pairs 148s with a block 148s preserves the original 148s returns a set with the matching values 148s with no block 148s returns an Enumerator 148s #find_all 149s works on a large hash, with many combinations of input 149s when everything matches 149s returns self 149s when only some things match 149s yields entries as [key, value] pairs 149s with a block 149s preserves the original 149s returns a set with the matching values 149s with no block 149s returns an Enumerator 149s #keep_if 149s works on a large hash, with many combinations of input 149s when everything matches 149s returns self 149s when only some things match 149s yields entries as [key, value] pairs 149s with a block 149s preserves the original 149s returns a set with the matching values 149s with no block 149s returns an Enumerator 149s 149s Hamster::Hash 149s #size 149s returns 0 for [] 149s returns 1 for [{"A"=>"aye"}] 149s returns 3 for [{"A"=>"bee", "B"=>"bee", "C"=>"see"}] 149s has the correct size after adding lots of things with colliding keys and such 149s has the correct size after lots of addings and removings 149s #length 149s returns 0 for [] 149s returns 1 for [{"A"=>"aye"}] 149s returns 3 for [{"A"=>"bee", "B"=>"bee", "C"=>"see"}] 149s has the correct size after adding lots of things with colliding keys and such 149s has the correct size after lots of addings and removings 149s 149s Hamster::Hash 149s #slice 149s with all keys present in the Hash 149s returns the sliced values 149s doesn't modify the original Hash 149s with keys aren't present in the Hash 149s returns the sliced values of the matching keys 149s doesn't modify the original Hash 149s on a Hash with a default block 149s maintains the default block 149s 149s Hamster::Hash 149s #sort 149s returns a Vector of sorted key/val pairs 149s works on large hashes 149s uses block as comparator to sort if passed a block 149s #sort_by 149s returns a Vector of key/val pairs, sorted using the block as a key function 149s 149s Hamster::Hash 149s #store 149s with a unique key 149s preserves the original 149s returns a copy with the superset of key/value pairs 149s with a duplicate key 149s preserves the original 149s returns a copy with the superset of key/value pairs 149s with duplicate key and identical value 149s returns the original hash unmodified 149s with big hash (force nested tries) 149s returns the original hash unmodified for all changes 149s with unequal keys which hash to the same value 149s stores and can retrieve both 149s when a String is inserted as key and then mutated 149s is not affected 149s 149s Hamster::Hash 149s #<= 149s for {} and {} 149s returns true 149s for {"A"=>1} and {} 149s returns false 149s for {} and {"A"=>1} 149s returns true 149s for {"A"=>1} and {"A"=>1} 149s returns true 149s for {"A"=>1} and {"A"=>2} 149s returns false 149s for {"B"=>2} and {"A"=>1, "B"=>2, "C"=>3} 149s returns true 149s for {"A"=>1, "B"=>2, "C"=>3} and {"B"=>2} 149s returns false 149s for {"B"=>0} and {"A"=>1, "B"=>2, "C"=>3} 149s returns false 149s #< 149s for {} and {} 149s returns false 149s for {"A"=>1} and {} 149s returns false 149s for {} and {"A"=>1} 149s returns true 149s for {"A"=>1} and {"A"=>1} 149s returns false 149s for {"A"=>1} and {"A"=>2} 149s returns false 149s for {"B"=>2} and {"A"=>1, "B"=>2, "C"=>3} 149s returns true 149s for {"A"=>1, "B"=>2, "C"=>3} and {"B"=>2} 149s returns false 149s for {"B"=>0} and {"A"=>1, "B"=>2, "C"=>3} 149s returns false 149s 149s Hamster::Hash 149s #>= 149s for {} and {} 149s returns true 149s for {"A"=>1} and {} 149s returns true 149s for {} and {"A"=>1} 149s returns false 149s for {"A"=>1} and {"A"=>1} 149s returns true 149s for {"A"=>1} and {"A"=>2} 149s returns false 149s for {"A"=>1, "B"=>2, "C"=>3} and {"B"=>2} 149s returns true 149s for {"B"=>2} and {"A"=>1, "B"=>2, "C"=>3} 149s returns false 149s for {"A"=>1, "B"=>2, "C"=>3} and {"B"=>0} 149s returns false 149s #> 149s for {} and {} 149s returns false 149s for {"A"=>1} and {} 149s returns true 149s for {} and {"A"=>1} 149s returns false 149s for {"A"=>1} and {"A"=>1} 149s returns false 149s for {"A"=>1} and {"A"=>2} 149s returns false 149s for {"A"=>1, "B"=>2, "C"=>3} and {"B"=>2} 149s returns true 149s for {"B"=>2} and {"A"=>1, "B"=>2, "C"=>3} 149s returns false 149s for {"A"=>1, "B"=>2, "C"=>3} and {"B"=>0} 149s returns false 149s 149s Hamster::Hash 149s #take 149s returns the first N key/val pairs from hash 149s #take_while 149s passes elements to the block until the block returns nil/false 149s returns an array of all elements before the one which returned nil/false 149s passes all elements if the block never returns nil/false 149s 149s Hamster::Hash 149s #to_a 149s returns an Array of [key, value] pairs in same order as #each 149s 149s Hamster::Hash 149s #to_hash 149s converts an empty Hamster::Hash to an empty Ruby Hash 149s converts a non-empty Hamster::Hash to a Hash with the same keys and values 149s doesn't modify the receiver 149s #to_h 149s converts an empty Hamster::Hash to an empty Ruby Hash 149s converts a non-empty Hamster::Hash to a Hash with the same keys and values 149s doesn't modify the receiver 149s 149s Hamster::Hash 149s #to_proc 149s on Hash without default proc 149s returns a Proc instance 149s returns a Proc that returns the value of an existing key 149s returns a Proc that returns nil for a missing key 149s on Hash with a default proc 149s returns a Proc instance 149s returns a Proc that returns the value of an existing key 149s returns a Proc that returns the result of the hash's default proc for a missing key 149s 149s Hamster::Hash 149s #values_at 149s on Hash without default proc 149s returns an empty vector when no keys are given 149s returns a vector of values for the given keys 149s fills nil when keys are missing 149s on Hash with default proc 149s fills the result of the default proc when keys are missing 149s 149s Hamster::Hash 149s #values 149s returns the keys as a Vector 149s with duplicates 149s returns the keys as a Vector 149s 149s Hamster::Immutable 149s #dup 149s returns self 149s #clone 149s returns self 149s 149s Hamster::Immutable 149s #immutable? 149s object constructed after its class becomes Immutable 149s returns true 149s object constructed before its class becomes Immutable 149s that are not frozen 149s returns false 149s that are frozen 149s returns true 149s 149s Hamster::Immutable 149s #memoize 149s keeps the receiver frozen and immutable 149s when called multiple times 149s doesn't evaluate the memoized method more than once 149s when making a copy 149s clears all memory 149s 149s Hamster::Immutable 149s freezes the instance 149s subclass hides all public methods 149s freezes the instance 149s 149s Hamster::Immutable 149s #transform 149s preserves the original 149s returns a new instance with the updated values 149s 149s Hamster::Immutable 149s #transform_unless 149s when the condition is false 149s preserves the original 149s returns a new instance with the updated values 149s when the condition is true 149s preserves the original 149s returns the original 149s 149s Hamster::List 149s #add 149s on [] with "A" 149s preserves the original 149s returns ["A"] 149s on ["A"] with "B" 149s preserves the original 149s returns ["B", "A"] 149s on ["A"] with "A" 149s preserves the original 149s returns ["A", "A"] 149s on ["A", "B", "C"] with "D" 149s preserves the original 149s returns ["D", "A", "B", "C"] 149s 149s Hamster::List 149s #all? 149s on a really big list 150s doesn't run out of stack 150s when empty 150s with a block returns true 150s with no block returns true 150s when not empty 150s with a block 150s if the block always returns true 150s returns true 150s if the block ever returns false 150s returns false 150s with no block 150s if all values are truthy 150s returns true 150s if any value is nil 150s returns false 150s if any value is false 150s returns false 150s 150s Hamster::List 150s #any? 150s on a really big list 150s doesn't run out of stack 150s when empty 150s with a block returns false 150s with no block returns false 150s when not empty 150s with a block 150s returns true if the block ever returns true ("A") 150s returns true if the block ever returns true ("B") 150s returns true if the block ever returns true ("C") 150s returns true if the block ever returns true (nil) 150s returns false if the block always returns false 150s with no block 150s returns true if any value is truthy 150s returns false if all values are falsey 150s 150s Hamster::List 150s #append 150s is lazy 150s on [] and [] 150s preserves the left 150s preserves the right 150s returns [] 150s on ["A"] and [] 150s preserves the left 150s preserves the right 150s returns ["A"] 150s on [] and ["A"] 150s preserves the left 150s preserves the right 150s returns ["A"] 150s on ["A", "B"] and ["C", "D"] 150s preserves the left 150s preserves the right 150s returns ["A", "B", "C", "D"] 150s #concat 150s is lazy 150s on [] and [] 150s preserves the left 150s preserves the right 150s returns [] 150s on ["A"] and [] 150s preserves the left 150s preserves the right 150s returns ["A"] 150s on [] and ["A"] 150s preserves the left 150s preserves the right 150s returns ["A"] 150s on ["A", "B"] and ["C", "D"] 150s preserves the left 150s preserves the right 150s returns ["A", "B", "C", "D"] 150s #+ 150s is lazy 150s on [] and [] 150s preserves the left 150s preserves the right 150s returns [] 150s on ["A"] and [] 150s preserves the left 150s preserves the right 150s returns ["A"] 150s on [] and ["A"] 150s preserves the left 150s preserves the right 150s returns ["A"] 150s on ["A", "B"] and ["C", "D"] 150s preserves the left 150s preserves the right 150s returns ["A", "B", "C", "D"] 150s 150s Hamster::List 150s #at 150s on a really big list 150s doesn't run out of stack 150s [] with 10 150s returns nil 150s ["A"] with 10 150s returns nil 150s ["A", "B", "C"] with 0 150s returns "A" 150s ["A", "B", "C"] with 2 150s returns "C" 150s ["A", "B", "C"] with -1 150s returns "C" 150s ["A", "B", "C"] with -2 150s returns "B" 150s ["A", "B", "C"] with -4 150s returns nil 150s 150s Hamster::List 150s #break 150s is lazy 150s on [] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [1] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [1, 2] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [1, 2, 3] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [1, 2, 3, 4] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [2, 3, 4] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [3, 4] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s on [4] 150s with a block 150s preserves the original 150s returns a frozen array with two items 150s correctly identifies the prefix 150s correctly identifies the remainder 150s without a block 150s returns a frozen array with two items 150s returns self as the prefix 150s leaves the remainder empty 150s 150s Hamster::List 150s #car 150s is responded to 150s on [] 150s preserves the original 150s returns nil 150s #car 150s is responded to 150s on ["A"] 150s preserves the original 150s returns "A" 150s #car 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns "A" 150s #cadr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns "B" 150s #caddr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns "C" 150s #cadddr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns nil 150s #caddddr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns nil 150s #cdr 150s is responded to 150s on [] 150s preserves the original 150s returns Hamster::List[] 150s #cdr 150s is responded to 150s on ["A"] 150s preserves the original 150s returns Hamster::List[] 150s #cdr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns Hamster::List["B", "C"] 150s #cddr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns Hamster::List["C"] 150s #cdddr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns Hamster::List[] 150s #cddddr 150s is responded to 150s on ["A", "B", "C"] 150s preserves the original 150s returns Hamster::List[] 150s 150s Hamster::List 150s #chunk 150s is lazy 150s on [] 150s preserves the original 150s returns [] 150s on ["A"] 150s preserves the original 150s returns [Hamster::List["A"]] 150s on ["A", "B", "C"] 150s preserves the original 150s returns [Hamster::List["A", "B"], Hamster::List["C"]] 150s 150s Hamster::List 150s #clear 150s on [] 150s preserves the original 150s returns an empty list 150s on ["A"] 150s preserves the original 150s returns an empty list 150s on ["A", "B", "C"] 150s preserves the original 150s returns an empty list 150s 150s Hamster::List 150s #combination 150s is lazy 150s on ["A", "B", "C", "D"] in groups of 1 150s preserves the original 150s returns [Hamster::List["A"], Hamster::List["B"], Hamster::List["C"], Hamster::List["D"]] 150s on ["A", "B", "C", "D"] in groups of 2 150s preserves the original 150s returns [Hamster::List["A", "B"], Hamster::List["A", "C"], Hamster::List["A", "D"], Hamster::List["B", "C"], Hamster::List["B", "D"], Hamster::List["C", "D"]] 150s on ["A", "B", "C", "D"] in groups of 3 150s preserves the original 150s returns [Hamster::List["A", "B", "C"], Hamster::List["A", "B", "D"], Hamster::List["A", "C", "D"], Hamster::List["B", "C", "D"]] 150s on ["A", "B", "C", "D"] in groups of 4 150s preserves the original 150s returns [Hamster::List["A", "B", "C", "D"]] 150s on ["A", "B", "C", "D"] in groups of 0 150s preserves the original 150s returns [Hamster::List[]] 150s on ["A", "B", "C", "D"] in groups of 5 150s preserves the original 150s returns [] 150s on [] in groups of 0 150s preserves the original 150s returns [Hamster::List[]] 150s on [] in groups of 1 150s preserves the original 150s returns [] 150s 150s Hamster::List 150s #compact 150s is lazy 150s on [] 150s preserves the original 150s returns [] 150s on ["A"] 150s preserves the original 150s returns ["A"] 150s on ["A", "B", "C"] 150s preserves the original 150s returns ["A", "B", "C"] 150s on [nil] 150s preserves the original 150s returns [] 150s on [nil, "B"] 150s preserves the original 150s returns ["B"] 150s on ["A", nil] 150s preserves the original 150s returns ["A"] 150s on [nil, nil] 150s preserves the original 150s returns [] 150s on ["A", nil, "C"] 150s preserves the original 150s returns ["A", "C"] 150s on [nil, "B", nil] 150s preserves the original 150s returns ["B"] 150s 150s Hamster::List 150s #<=> 150s with [] and [1] 150s returns -1 150s with [1] and [] 150s returns 1 150s with [] and [] 150s returns 0 150s with [1] and [2] 150s returns -1 150s with [2] and [1] 150s returns 1 150s with [1] and [1] 150s returns 0 150s with [1] and [1, 2] 150s returns -1 150s with [1, 2] and [1] 150s returns 1 150s with [1] and [1] 150s returns 0 150s with [2, 3, 4] and [3, 4, 5] 150s returns -1 150s with [3, 4, 5] and [2, 3, 4] 150s returns 1 150s with [2, 3, 4] and [2, 3, 4] 150s returns 0 150s 150s Hamster::List 150s #cons 150s on [] with "A" 150s preserves the original 150s returns ["A"] 150s on ["A"] with "B" 150s preserves the original 150s returns ["B", "A"] 150s on ["A"] with "A" 150s preserves the original 150s returns ["A", "A"] 150s on ["A", "B", "C"] with "D" 150s preserves the original 150s returns ["D", "A", "B", "C"] 150s 150s Hamster 150s .list 150s with no arguments 150s always returns the same instance 150s returns an empty list 150s with a number of items 150s always returns a different instance 150s is the same as repeatedly using #cons 150s .stream 150s with no block 150s returns an empty list 150s with a block 150s repeatedly calls the block 150s .interval 150s for numbers 150s is equivalent to a list with explicit values 150s for strings 150s is equivalent to a list with explicit values 150s .repeat 150s returns an infinite list with specified value for each element 150s .replicate 150s returns a list with the specified value repeated the specified number of times 150s .iterate 150s returns an infinite list where the first item is calculated by applying the block on the initial argument, the second item by applying the function on the previous result and so on 150s .enumerate 150s returns a list based on the values yielded from the enumerator 150s WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /tmp/autopkgtest.RJMQW4/build.IgZ/src/spec/lib/hamster/list/construction_spec.rb:94:in `block (3 levels) in '. 150s realizes values as they are needed 150s [] 150s takes a variable number of items and returns a list 150s returns an empty list when called without arguments 150s 150s Hamster::List 150s on [] 150s returns self 150s on ["A"] 150s returns self 150s on ["A", "B", "C"] 150s returns self 150s on [] 150s returns self 150s on ["A"] 150s returns self 150s on ["A", "B", "C"] 150s returns self 150s 150s Hamster::List 150s #count 150s on a really big list 150s doesn't run out of stack 150s on [] 150s with a block 150s returns 0 150s without a block 150s returns length 150s on [1] 150s with a block 150s returns 1 150s without a block 150s returns length 150s on [1, 2] 150s with a block 150s returns 1 150s without a block 150s returns length 150s on [1, 2, 3] 150s with a block 150s returns 2 150s without a block 150s returns length 150s on [1, 2, 3, 4] 150s with a block 150s returns 2 150s without a block 150s returns length 150s on [1, 2, 3, 4, 5] 150s with a block 150s returns 3 150s without a block 150s returns length 150s 150s Hamster 150s #cycle 150s is lazy 150s with an empty list 150s returns an empty list 150s with a non-empty list 150s preserves the original 150s infinitely cycles through all values 150s 150s Hamster::List 150s #delete_at 150s removes the element at the specified index 150s makes no modification if the index is out of range 150s 150s Hamster::List 150s #delete 150s removes elements that are #== to the argument 150s 150s Hamster::List 150s #drop 150s is lazy 150s with 10 from [] 150s preserves the original 150s returns [] 150s with 10 from ["A"] 150s preserves the original 150s returns [] 150s with -1 from ["A"] 150s preserves the original 150s returns ["A"] 150s with 0 from ["A", "B", "C"] 150s preserves the original 150s returns ["A", "B", "C"] 150s with 2 from ["A", "B", "C"] 150s preserves the original 150s returns ["C"] 150s 150s Hamster::List 150s #drop_while 150s is lazy 150s on [] 150s with a block 150s preserves the original 150s returns [] 150s without a block 150s returns an Enumerator 150s on ["A"] 150s with a block 150s preserves the original 150s returns [] 150s without a block 150s returns an Enumerator 150s on ["A", "B", "C"] 150s with a block 150s preserves the original 150s returns ["C"] 150s without a block 150s returns an Enumerator 150s 150s Hamster::List 150s #each_chunk 150s on a really big list 150s doesn't run out of stack 150s on [] 150s with a block 150s preserves the original 150s iterates over the items in order 150s returns self 150s without a block 150s preserves the original 150s returns an Enumerator 150s on ["A"] 150s with a block 150s preserves the original 150s iterates over the items in order 150s returns self 150s without a block 150s preserves the original 150s returns an Enumerator 150s on ["A", "B", "C"] 150s with a block 150s preserves the original 150s iterates over the items in order 150s returns self 150s without a block 150s preserves the original 150s returns an Enumerator 150s #each_slice 150s on a really big list 150s doesn't run out of stack 150s on [] 150s with a block 150s preserves the original 150s iterates over the items in order 150s returns self 150s without a block 150s preserves the original 150s returns an Enumerator 150s on ["A"] 150s with a block 150s preserves the original 150s iterates over the items in order 150s returns self 150s without a block 150s preserves the original 150s returns an Enumerator 150s on ["A", "B", "C"] 150s with a block 150s preserves the original 150s iterates over the items in order 150s returns self 150s without a block 150s preserves the original 150s returns an Enumerator 150s 150s Hamster::List 150s #each 150s on a really big list 151s doesn't run out of stack 151s on [] 151s with a block 151s iterates over the items in order 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s iterates over the items in order 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A", "B", "C"] 151s with a block 151s iterates over the items in order 151s returns nil 151s without a block 151s returns an Enumerator 151s 151s Hamster::List 151s #each_with_index 151s with no block 151s returns an Enumerator 151s with a block 151s returns self 151s iterates over the items in order, yielding item and index 151s 151s Hamster::List 151s #empty? 151s on a really big list 151s doesn't run out of stack 151s on [] 151s returns true 151s on ["A"] 151s returns false 151s on ["A", "B", "C"] 151s returns false 151s 151s Hamster::List 151s Hamster::List["A", "B", "C"] should == ["A", "B", "C"] 151s Hamster::List["A", "B", "C"] should not eql? ["A", "B", "C"] 151s Hamster::List["A", "B", "C"] should not == # 151s Hamster::List["A", "B", "C"] should not eql? # 151s Hamster::List[] should == [] 151s Hamster::List[] should not eql? [] 151s Hamster::List[] should eql? Hamster::List[] 151s Hamster::List[] should == Hamster::List[] 151s Hamster::List[] should not eql? Hamster::List[nil] 151s Hamster::List["A"] should not eql? Hamster::List[] 151s Hamster::List["A"] should eql? Hamster::List["A"] 151s Hamster::List["A"] should == Hamster::List["A"] 151s Hamster::List["A"] should not eql? Hamster::List["B"] 151s Hamster::List["A", "B"] should not eql? Hamster::List["A"] 151s Hamster::List["A", "B", "C"] should eql? Hamster::List["A", "B", "C"] 151s Hamster::List["A", "B", "C"] should == Hamster::List["A", "B", "C"] 151s Hamster::List["C", "A", "B"] should not eql? Hamster::List["A", "B", "C"] 151s Hamster::List["A"] should == ["A"] 151s ["A"] should == Hamster::List["A"] 151s Hamster::List["A"] should not eql? ["A"] 151s ["A"] should not eql? Hamster::List["A"] 151s #eql? 151s on a really big list 151s doesn't run out of stack 151s 151s Hamster::List 151s #fill 151s can replace a range of items at the beginning of a list 151s can replace a range of items in the middle of a list 151s can replace a range of items at the end of a list 151s can replace all the items in a list 151s can fill past the end of the list 151s is lazy 151s with 1 argument 151s replaces all the items in the list by default 151s with 2 arguments 151s replaces up to the end of the list by default 151s when index and length are 0 151s leaves the list unmodified 151s 151s Hamster::List 151s #find_all 151s is lazy 151s with an empty array 151s with a block 151s preserves the original 151s returns the found list 151s without a block 151s returns an Enumerator 151s with a single item array 151s with a block 151s preserves the original 151s returns the found list 151s without a block 151s returns an Enumerator 151s with a multi-item array 151s with a block 151s preserves the original 151s returns the found list 151s without a block 151s returns an Enumerator 151s with a multi-item single find_allable array 151s with a block 151s preserves the original 151s returns the found list 151s without a block 151s returns an Enumerator 151s with a multi-item multi-find_allable array 151s with a block 151s preserves the original 151s returns the found list 151s without a block 151s returns an Enumerator 151s 151s Hamster::List 151s #find_index 151s on a really big list 151s doesn't run out of stack 151s looking for "A" in [] 151s returns nil 151s looking for nil in [] 151s returns nil 151s looking for "A" in ["A"] 151s returns 0 151s looking for "B" in ["A"] 151s returns nil 151s looking for nil in ["A"] 151s returns nil 151s looking for "A" in ["A", "B", nil] 151s returns 0 151s looking for "B" in ["A", "B", nil] 151s returns 1 151s looking for nil in ["A", "B", nil] 151s returns 2 151s looking for "C" in ["A", "B", nil] 151s returns nil 151s looking for 2 in [2] 151s returns 0 151s looking for 2.0 in [2] 151s returns 0 151s looking for 2.0 in [2.0] 151s returns 0 151s looking for 2 in [2.0] 151s returns 0 151s #index 151s on a really big list 151s doesn't run out of stack 151s looking for "A" in [] 151s returns nil 151s looking for nil in [] 151s returns nil 151s looking for "A" in ["A"] 151s returns 0 151s looking for "B" in ["A"] 151s returns nil 151s looking for nil in ["A"] 151s returns nil 151s looking for "A" in ["A", "B", nil] 151s returns 0 151s looking for "B" in ["A", "B", nil] 151s returns 1 151s looking for nil in ["A", "B", nil] 151s returns 2 151s looking for "C" in ["A", "B", nil] 151s returns nil 151s looking for 2 in [2] 151s returns 0 151s looking for 2.0 in [2] 151s returns 0 151s looking for 2.0 in [2.0] 151s returns 0 151s looking for 2 in [2.0] 151s returns 0 151s 151s Hamster::List 151s #find 151s on a really big list 151s doesn't run out of stack 151s on [] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on [] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s returns "A" 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns "A" 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns "B" 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s #detect 151s on a really big list 151s doesn't run out of stack 151s on [] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on [] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s returns "A" 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A"] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns "A" 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns "B" 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s on ["A", "B", nil] 151s with a block 151s returns nil 151s without a block 151s returns an Enumerator 151s 151s Hamster::List 151s #flat_map 151s with an empty list 151s returns the flattened values as a Hamster::List 151s returns a Hamster::List 151s with a block that returns an empty list 151s returns the flattened values as a Hamster::List 151s returns a Hamster::List 151s with a list of one item 151s returns the flattened values as a Hamster::List 151s returns a Hamster::List 151s with a list of multiple items 151s returns the flattened values as a Hamster::List 151s returns a Hamster::List 151s 151s Hamster 151s #flatten 151s is lazy 151s on [] 151s preserves the original 151s returns an empty list 151s on ["A"] 151s preserves the original 151s returns an empty list 151s on ["A", "B", "C"] 151s preserves the original 151s returns an empty list 151s on ["A", Hamster::List["B"], "C"] 151s preserves the original 151s returns an empty list 151s on [Hamster::List["A"], Hamster::List["B"], Hamster::List["C"]] 151s preserves the original 151s returns an empty list 151s 151s Hamster::List 151s #grep 151s is lazy 151s without a block 151s on [] 151s returns [] 151s on ["A"] 151s returns ["A"] 151s on [1] 151s returns [] 151s on ["A", 2, "C"] 151s returns ["A", "C"] 151s with a block 151s on [] 151s preserves the original 151s returns [] 151s on ["A"] 151s preserves the original 151s returns ["a"] 151s on [1] 151s preserves the original 151s returns [] 151s on ["A", 2, "C"] 151s preserves the original 151s returns ["a", "c"] 151s 151s Hamster::List 151s #group_by 151s on a really big list 151s doesn't run out of stack 151s with a block 151s on [] 151s returns [] 151s on [1] 151s returns [{true=>Hamster::List[1]}] 151s on [1, 2, 3, 4] 151s returns [{true=>Hamster::List[3, 1], false=>Hamster::List[4, 2]}] 151s without a block 151s on [] 151s returns [] 151s on [1] 151s returns [{1=>Hamster::List[1]}] 151s on [1, 2, 3, 4] 151s returns [{1=>Hamster::List[1], 2=>Hamster::List[2], 3=>Hamster::List[3], 4=>Hamster::List[4]}] 151s #group 151s on a really big list 152s doesn't run out of stack 152s with a block 152s on [] 152s returns [] 152s on [1] 152s returns [{true=>Hamster::List[1]}] 152s on [1, 2, 3, 4] 152s returns [{true=>Hamster::List[3, 1], false=>Hamster::List[4, 2]}] 152s without a block 152s on [] 152s returns [] 152s on [1] 152s returns [{1=>Hamster::List[1]}] 152s on [1, 2, 3, 4] 152s returns [{1=>Hamster::List[1], 2=>Hamster::List[2], 3=>Hamster::List[3], 4=>Hamster::List[4]}] 152s 152s Hamster::List 152s #hash 152s values are sufficiently distributed 152s on a really big list 152s doesn't run out of stack 152s on an empty list 152s returns 0 152s 152s Hamster::List 152s #head 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["A", "B", "C"] 152s returns "A" 152s #first 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["A", "B", "C"] 152s returns "A" 152s 152s Hamster::List 152s #include? 152s on a really big list 152s doesn't run out of stack 152s on [] 152s returns false 152s on [] 152s returns false 152s on ["A"] 152s returns true 152s on ["A"] 152s returns false 152s on ["A"] 152s returns false 152s on ["A", "B", nil] 152s returns true 152s on ["A", "B", nil] 152s returns true 152s on ["A", "B", nil] 152s returns true 152s on ["A", "B", nil] 152s returns false 152s on [2] 152s returns true 152s on [2] 152s returns true 152s on [2.0] 152s returns true 152s on [2.0] 152s returns true 152s #member? 152s on a really big list 152s doesn't run out of stack 152s on [] 152s returns false 152s on [] 152s returns false 152s on ["A"] 152s returns true 152s on ["A"] 152s returns false 152s on ["A"] 152s returns false 152s on ["A", "B", nil] 152s returns true 152s on ["A", "B", nil] 152s returns true 152s on ["A", "B", nil] 152s returns true 152s on ["A", "B", nil] 152s returns false 152s on [2] 152s returns true 152s on [2] 152s returns true 152s on [2.0] 152s returns true 152s on [2.0] 152s returns true 152s 152s Hamster::List 152s #index 152s on a really big list 152s doesn't run out of stack 152s looking for "A" in [] 152s returns nil 152s looking for nil in [] 152s returns nil 152s looking for "A" in ["A"] 152s returns 0 152s looking for "B" in ["A"] 152s returns nil 152s looking for nil in ["A"] 152s returns nil 152s looking for "A" in ["A", "B", nil] 152s returns 0 152s looking for "B" in ["A", "B", nil] 152s returns 1 152s looking for nil in ["A", "B", nil] 152s returns 2 152s looking for "C" in ["A", "B", nil] 152s returns nil 152s looking for 2 in [2] 152s returns 0 152s looking for 2.0 in [2] 152s returns 0 152s looking for 2.0 in [2.0] 152s returns 0 152s looking for 2 in [2.0] 152s returns 0 152s 152s Hamster::List 152s #indices 152s when called with a block 152s is lazy 152s on a large list which doesn't contain desired item 152s doesn't blow the stack 152s looking for "A" in [] 152s returns [] 152s looking for "B" in ["A"] 152s returns [] 152s looking for "B" in ["A", "B", "A"] 152s returns [1] 152s looking for "A" in ["A", "B", "A"] 152s returns [0, 2] 152s looking for 2 in [2] 152s returns [0] 152s looking for 2.0 in [2] 152s returns [0] 152s looking for 2.0 in [2.0] 152s returns [0] 152s looking for 2 in [2.0] 152s returns [0] 152s when called with a single argument 152s is lazy 152s looking for "A" in [] 152s returns [] 152s looking for "B" in ["A"] 152s returns [] 152s looking for "B" in ["A", "B", "A"] 152s returns [1] 152s looking for "A" in ["A", "B", "A"] 152s returns [0, 2] 152s looking for 2 in [2] 152s returns [0] 152s looking for 2.0 in [2] 152s returns [0] 152s looking for 2.0 in [2.0] 152s returns [0] 152s looking for 2 in [2.0] 152s returns [0] 152s 152s Hamster::List 152s #init 152s is lazy 152s on [] 152s preserves the original 152s returns the list without the last element: [] 152s on ["A"] 152s preserves the original 152s returns the list without the last element: [] 152s on ["A", "B", "C"] 152s preserves the original 152s returns the list without the last element: ["A", "B"] 152s 152s Hamster::List 152s #inits 152s is lazy 152s on [] 152s preserves the original 152s returns [] 152s on ["A"] 152s preserves the original 152s returns [Hamster::List["A"]] 152s on ["A", "B", "C"] 152s preserves the original 152s returns [Hamster::List["A"], Hamster::List["A", "B"], Hamster::List["A", "B", "C"]] 152s 152s Hamster::List 152s #insert 152s can add items at the beginning of a list 152s can add items in the middle of a list 152s can add items at the end of a list 152s can add items past the end of a list 152s accepts a negative index, which counts back from the end of the list 152s raises IndexError if a negative index is too great 152s is lazy 152s 152s Hamster::List 152s #inspect 152s on a really big list 152s doesn't run out of stack 152s on [] 152s returns "Hamster::List[]" 152s returns a string which can be eval'd to get an equivalent object 152s on ["A"] 152s returns "Hamster::List[\"A\"]" 152s returns a string which can be eval'd to get an equivalent object 152s on ["A", "B", "C"] 152s returns "Hamster::List[\"A\", \"B\", \"C\"]" 152s returns a string which can be eval'd to get an equivalent object 152s 152s Hamster::List 152s #intersperse 152s is lazy 152s on [] 152s preserves the original 152s returns [] 152s on ["A"] 152s preserves the original 152s returns ["A"] 152s on ["A", "B", "C"] 152s preserves the original 152s returns ["A", "|", "B", "|", "C"] 152s 152s Hamster::List 152s #join 152s on a really big list 152s doesn't run out of stack 152s with a separator 152s on [] 152s preserves the original 152s returns "" 152s on ["A"] 152s preserves the original 152s returns "A" 152s on ["A", "B", "C"] 152s preserves the original 152s returns "A|B|C" 152s without a separator 152s on [] 152s preserves the original 152s returns "" 152s on ["A"] 152s preserves the original 152s returns "A" 152s on ["A", "B", "C"] 152s preserves the original 152s returns "ABC" 152s without a separator (with global default separator set) 152s uses the default global separator 152s 152s Hamster::List 152s #last 152s on a really big list 152s doesn't run out of stack 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["A", "B", "C"] 152s returns "C" 152s 152s Hamster::List 152s #<< 152s adds an item onto the end of a list 152s on an empty list 152s returns a list with one item 152s 152s Hamster::List 152s #map 152s is lazy 152s on [] 152s with a block 152s preserves the original 152s returns [] 152s is lazy 152s without a block 152s returns an Enumerator 152s on ["A"] 152s with a block 152s preserves the original 152s returns ["a"] 152s is lazy 152s without a block 152s returns an Enumerator 152s on ["A", "B", "C"] 152s with a block 152s preserves the original 152s returns ["a", "b", "c"] 152s is lazy 152s without a block 152s returns an Enumerator 152s #collect 152s is lazy 152s on [] 152s with a block 152s preserves the original 152s returns [] 152s is lazy 152s without a block 152s returns an Enumerator 152s on ["A"] 152s with a block 152s preserves the original 152s returns ["a"] 152s is lazy 152s without a block 152s returns an Enumerator 152s on ["A", "B", "C"] 152s with a block 152s preserves the original 152s returns ["a", "b", "c"] 152s is lazy 152s without a block 152s returns an Enumerator 152s 152s Hamster::List 152s #max 152s on a really big list 152s doesn't run out of stack 152s with a block 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["Ichi", "Ni", "San"] 152s returns "Ichi" 152s without a block 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["Ichi", "Ni", "San"] 152s returns "San" 152s 152s Hamster::List 152s without a comparator 152s on an empty list 152s returns an empty list 152s on a single list 152s returns the list 152s with multiple lists 152s merges the lists based on natural sort order 152s with a comparator 152s on an empty list 152s returns an empty list 152s on a single list 152s returns the list 152s with multiple lists 152s merges the lists based on the specified transformer 152s 152s Hamster::List 152s without a comparator 152s on an empty list 152s returns an empty list 152s on a single list 152s returns the list 152s with multiple lists 152s merges the lists based on natural sort order 152s with a comparator 152s on an empty list 152s returns an empty list 152s on a single list 152s returns the list 152s with multiple lists 152s merges the lists based on the specified comparator 152s 152s Hamster::List 152s #min 152s on a really big list 152s doesn't run out of stack 152s with a block 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["Ichi", "Ni", "San"] 152s returns "Ni" 152s without a block 152s on [] 152s returns nil 152s on ["A"] 152s returns "A" 152s on ["Ichi", "Ni", "San"] 152s returns "Ichi" 152s 152s Hamster::List 153s ensures each node of a lazy list will only be realized on ONE thread, even when accessed by multiple threads 153s doesn't go into an infinite loop if lazy list block raises an exception 153s doesn't give horrendously bad performance if thread realizing the list sleeps (PENDING: Temporarily skipped with xit) 153s 153s Hamster::List 153s #none? 153s on a really big list 153s doesn't run out of stack 153s when empty 153s with a block returns true 153s with no block returns true 153s when not empty 153s with a block 153s returns false if the block ever returns true ("A") 153s returns false if the block ever returns true ("B") 153s returns false if the block ever returns true ("C") 153s returns false if the block ever returns true (nil) 153s returns true if the block always returns false 153s with no block 153s returns false if any value is truthy 153s returns true if all values are falsey 153s 153s Hamster::List 153s #one? 153s on a really big list 153s doesn't run out of stack 153s when empty 153s with a block returns false 153s with no block returns false 153s when not empty 153s with a block 153s returns false if the block returns true more than once 153s returns false if the block never returns true 153s returns true if the block only returns true once 153s with no block 153s returns false if more than one value is truthy 153s returns true if only one value is truthy 153s 153s Hamster::List 153s #partition 153s is lazy 153s calls the passed block only once for each item 153s returns a lazy list of items for which predicate is true 153s returns a lazy list of items for which predicate is false 153s calls the passed block only once for each item, even with multiple threads 153s on [] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [1] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [1, 2] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [1, 2, 3] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [1, 2, 3, 4] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [2, 3, 4] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [3, 4] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s on [4] 153s with a block 153s preserves the original 153s returns a frozen array with two items 153s correctly identifies the matches 153s correctly identifies the remainder 153s without a block 153s returns an Enumerator 153s 153s Hamster::List 153s #permutation 153s with no block 153s returns an Enumerator 153s with no argument 153s yields all permutations of the list 153s with a length argument 153s yields all N-size permutations of the list 153s with a length argument greater than length of list 153s yields nothing 153s with a length argument of 0 153s yields an empty list 153s with a block 153s returns the original list 153s 153s Hamster::List 153s #pop 153s with an empty list 153s returns an empty list 153s with a list with a few items 153s removes the last item 153s 153s Hamster::List 153s #product 153s on a really big list 153s doesn't run out of stack 153s on [] 153s returns 1 153s on [2] 153s returns 2 153s on [1, 3, 5, 7, 11] 153s returns 1155 153s 153s Hamster::List 153s #reduce 153s on a really big list 154s doesn't run out of stack 154s on [] 154s with an initial value of 10 and a block 154s returns 10 154s on [1] 154s with an initial value of 10 and a block 154s returns 9 154s on [1, 2, 3] 154s with an initial value of 10 and a block 154s returns 4 154s on [] 154s with no initial value and a block 154s returns nil 154s on [1] 154s with no initial value and a block 154s returns 1 154s on [1, 2, 3] 154s with no initial value and a block 154s returns -4 154s with no block and a symbol argument 154s uses the symbol as the name of a method to reduce with 154s with no block and a string argument 154s uses the string as the name of a method to reduce with 154s #inject 154s on a really big list 154s doesn't run out of stack 154s on [] 154s with an initial value of 10 and a block 154s returns 10 154s on [1] 154s with an initial value of 10 and a block 154s returns 9 154s on [1, 2, 3] 154s with an initial value of 10 and a block 154s returns 4 154s on [] 154s with no initial value and a block 154s returns nil 154s on [1] 154s with no initial value and a block 154s returns 1 154s on [1, 2, 3] 154s with no initial value and a block 154s returns -4 154s with no block and a symbol argument 154s uses the symbol as the name of a method to reduce with 154s with no block and a string argument 154s uses the string as the name of a method to reduce with 154s 154s Hamster::List 154s #reject 154s is lazy 154s on [] 154s with a block 154s returns [] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A"] 154s with a block 154s returns ["A"] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A", "B", "C"] 154s with a block 154s returns ["A", "B", "C"] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A", "b", "C"] 154s with a block 154s returns ["A", "C"] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["a", "b", "c"] 154s with a block 154s returns [] 154s is lazy 154s without a block 154s returns an Enumerator 154s #delete_if 154s is lazy 154s on [] 154s with a block 154s returns [] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A"] 154s with a block 154s returns ["A"] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A", "B", "C"] 154s with a block 154s returns ["A", "B", "C"] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A", "b", "C"] 154s with a block 154s returns ["A", "C"] 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["a", "b", "c"] 154s with a block 154s returns [] 154s is lazy 154s without a block 154s returns an Enumerator 154s 154s Hamster::List 154s #reverse 154s is lazy 154s on a really big list 154s doesn't run out of stack 154s on [] 154s preserves the original 154s returns [] 154s on ["A"] 154s preserves the original 154s returns ["A"] 154s on ["A", "B", "C"] 154s preserves the original 154s returns ["C", "B", "A"] 154s 154s Hamster::List 154s #rotate 154s when passed no argument 154s returns a new list with the first element moved to the end 154s with an integral argument n 154s returns a new list with the first (n % size) elements moved to the end 154s with a non-numeric argument 154s raises a TypeError 154s with an argument of zero (or one evenly divisible by list length) 154s it returns self 154s 154s Hamster::List 154s #sample 154s returns a randomly chosen item 154s 154s Hamster::List 154s #select 154s is lazy 154s with an empty array 154s with a block 154s preserves the original 154s returns the selected list 154s without a block 154s returns an Enumerator 154s with a single item array 154s with a block 154s preserves the original 154s returns the selected list 154s without a block 154s returns an Enumerator 154s with a multi-item array 154s with a block 154s preserves the original 154s returns the selected list 154s without a block 154s returns an Enumerator 154s with a multi-item single selectable array 154s with a block 154s preserves the original 154s returns the selected list 154s without a block 154s returns an Enumerator 154s with a multi-item multi-selectable array 154s with a block 154s preserves the original 154s returns the selected list 154s without a block 154s returns an Enumerator 154s 154s Hamster::List 154s #size 154s on a really big list 154s doesn't run out of stack 154s on [] 154s returns 0 154s on ["A"] 154s returns 1 154s on ["A", "B", "C"] 154s returns 3 154s #length 154s on a really big list 154s doesn't run out of stack 154s on [] 154s returns 0 154s on ["A"] 154s returns 1 154s on ["A", "B", "C"] 154s returns 3 154s 154s Hamster::List 154s #slice 154s when passed a positive integral index 154s returns the element at that index 154s leaves the original unchanged 154s when passed a negative integral index 154s returns the element which is number (index.abs) counting from the end of the list 154s when passed a positive integral index and count 154s returns 'count' elements starting from 'index' 154s leaves the original unchanged 154s when passed a negative integral index and count 154s returns 'count' elements, starting from index which is number 'index.abs' counting from the end of the array 154s when passed a Range 154s returns the elements whose indexes are within the given Range 154s leaves the original unchanged 154s when passed a subclass of Range 154s works the same as with a Range 154s #[] 154s when passed a positive integral index 154s returns the element at that index 154s leaves the original unchanged 154s when passed a negative integral index 154s returns the element which is number (index.abs) counting from the end of the list 154s when passed a positive integral index and count 154s returns 'count' elements starting from 'index' 154s leaves the original unchanged 154s when passed a negative integral index and count 154s returns 'count' elements, starting from index which is number 'index.abs' counting from the end of the array 154s when passed a Range 154s returns the elements whose indexes are within the given Range 154s leaves the original unchanged 154s when passed a subclass of Range 154s works the same as with a Range 154s 154s Hamster::List 154s #sort 154s is lazy 154s on [] 154s with a block 154s preserves the original 154s returns [] 154s without a block 154s preserves the original 154s returns [] 154s on ["A"] 154s with a block 154s preserves the original 154s returns ["A"] 154s without a block 154s preserves the original 154s returns ["A"] 154s on ["Ichi", "Ni", "San"] 154s with a block 154s preserves the original 154s returns ["Ni", "San", "Ichi"] 154s without a block 154s preserves the original 154s returns ["Ichi", "Ni", "San"] 154s #sort_by 154s is lazy 154s on [] 154s with a block 154s preserves the original 154s returns [] 154s without a block 154s preserves the original 154s returns [] 154s on ["A"] 154s with a block 154s preserves the original 154s returns ["A"] 154s without a block 154s preserves the original 154s returns ["A"] 154s on ["Ichi", "Ni", "San"] 154s with a block 154s preserves the original 154s returns ["Ni", "San", "Ichi"] 154s without a block 154s preserves the original 154s returns ["Ichi", "Ni", "San"] 154s 154s Hamster::list#span 154s is lazy 154s given a predicate (in the form of a block), splits the list into two lists 154s (returned as an array) such that elements in the first list (the prefix) are 154s taken from the head of the list while the predicate is satisfied, and elements 154s in the second list (the remainder) are the remaining elements from the list 154s once the predicate is not satisfied. For example: 154s given the list [] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [] 154s returns the remainder as [] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [1] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [1] 154s returns the remainder as [] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [1, 2] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [1, 2] 154s returns the remainder as [] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [1, 2, 3] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [1, 2] 154s returns the remainder as [3] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [1, 2, 3, 4] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [1, 2] 154s returns the remainder as [3, 4] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [2, 3, 4] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [2] 154s returns the remainder as [3, 4] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [3, 4] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [] 154s returns the remainder as [3, 4] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s given the list [4] 154s and a predicate that returns true for values <= 2 154s preserves the original 154s returns the prefix as [] 154s returns the remainder as [4] 154s calls the block only once for each element 154s without a predicate 154s returns a frozen array 154s returns self as the prefix 154s returns an empty list as the remainder 154s 154s Hamster::List 154s #split_at 154s is lazy 154s on [] 154s preserves the original 154s returns a frozen array with two items 154s correctly identifies the matches 154s correctly identifies the remainder 154s on [1] 154s preserves the original 154s returns a frozen array with two items 154s correctly identifies the matches 154s correctly identifies the remainder 154s on [1, 2] 154s preserves the original 154s returns a frozen array with two items 154s correctly identifies the matches 154s correctly identifies the remainder 154s on [1, 2, 3] 154s preserves the original 154s returns a frozen array with two items 154s correctly identifies the matches 154s correctly identifies the remainder 154s on [1, 2, 3, 4] 154s preserves the original 154s returns a frozen array with two items 154s correctly identifies the matches 154s correctly identifies the remainder 154s 154s Hamster::List 154s #subsequences 154s yields all sublists with 1 or more consecutive items 154s with no block 154s returns an Enumerator 154s 154s Hamster::List 154s #sum 154s on a really big list 154s doesn't run out of stack 154s on [] 154s returns 0 154s on [2] 154s returns 2 154s on [1, 3, 5, 7, 11] 154s returns 27 154s 154s Hamster::List 154s #tail 154s on a really big list 154s doesn't run out of stack 154s on [] 154s preserves the original 154s returns [] 154s on ["A"] 154s preserves the original 154s returns [] 154s on ["A", "B", "C"] 154s preserves the original 154s returns ["B", "C"] 154s 154s Hamster::List 154s #tails 154s is lazy 154s on [] 154s preserves the original 154s returns [] 154s on ["A"] 154s preserves the original 154s returns [Hamster::List["A"]] 154s on ["A", "B", "C"] 154s preserves the original 154s returns [Hamster::List["A", "B", "C"], Hamster::List["B", "C"], Hamster::List["C"]] 154s 154s Hamster::List 154s #take 154s is lazy 154s 10 from [] 154s preserves the original 154s returns [] 154s 10 from ["A"] 154s preserves the original 154s returns ["A"] 154s -1 from ["A"] 154s preserves the original 154s returns [] 154s 0 from ["A", "B", "C"] 154s preserves the original 154s returns [] 154s 2 from ["A", "B", "C"] 154s preserves the original 154s returns ["A", "B"] 154s 154s Hamster::List 154s #take_while 154s is lazy 154s on [] 154s with a block 154s returns [] 154s preserves the original 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A"] 154s with a block 154s returns ["A"] 154s preserves the original 154s is lazy 154s without a block 154s returns an Enumerator 154s on ["A", "B", "C"] 154s with a block 154s returns ["A", "B"] 154s preserves the original 154s is lazy 154s without a block 154s returns an Enumerator 154s 154s Hamster::List 154s #to_a 154s on a really big list 154s doesn't run out of stack 154s on [] 154s returns [] 154s leaves the original unchanged 154s returns a mutable array 154s on ["A"] 154s returns ["A"] 154s leaves the original unchanged 154s returns a mutable array 154s on ["A", "B", "C"] 154s returns ["A", "B", "C"] 154s leaves the original unchanged 154s returns a mutable array 154s #entries 154s on a really big list 154s doesn't run out of stack 154s on [] 154s returns [] 154s leaves the original unchanged 154s returns a mutable array 154s on ["A"] 154s returns ["A"] 154s leaves the original unchanged 154s returns a mutable array 154s on ["A", "B", "C"] 154s returns ["A", "B", "C"] 154s leaves the original unchanged 154s returns a mutable array 154s 154s Hamster::List 154s #to_ary 154s on a really big list 154s doesn't run out of stack 154s enables implicit conversion to 154s block parameters 154s method arguments 154s works with splat 154s 154s Hamster::List 154s #to_list 154s on [] 154s returns self 154s on ["A"] 154s returns self 154s on ["A", "B", "C"] 154s returns self 154s 154s Hamster::List 154s #to_set 154s on [] 154s returns a set with the same values 154s on ["A"] 154s returns a set with the same values 154s on ["A", "B", "C"] 154s returns a set with the same values 154s 154s Hamster::List 154s #transpose 154s takes a list of lists and returns a list of all the first elements, all the 2nd elements, and so on 154s only goes as far as the shortest list 154s 154s Hamster::List 154s #union 154s is lazy 154s returns [] 154s for [] and [] 154s for [] and [] 154s returns ["A"] 154s for ["A"] and [] 154s for [] and ["A"] 154s returns ["A", "B", "C"] 154s for ["A", "B", "C"] and [] 154s for [] and ["A", "B", "C"] 154s returns ["A"] 154s for ["A", "A"] and ["A"] 154s for ["A"] and ["A", "A"] 154s #| 154s is lazy 154s returns [] 154s for [] and [] 154s for [] and [] 154s returns ["A"] 154s for ["A"] and [] 154s for [] and ["A"] 154s returns ["A", "B", "C"] 154s for ["A", "B", "C"] and [] 154s for [] and ["A", "B", "C"] 154s returns ["A"] 154s for ["A", "A"] and ["A"] 154s for ["A"] and ["A", "A"] 154s 154s Hamster::List 154s #uniq 154s is lazy 154s when passed a block 154s uses the block to identify duplicates 154s on [] 154s preserves the original 154s returns [] 154s on ["A"] 154s preserves the original 154s returns ["A"] 154s on ["A", "B", "C"] 154s preserves the original 154s returns ["A", "B", "C"] 154s on ["A", "B", "A", "C", "C"] 154s preserves the original 154s returns ["A", "B", "C"] 154s 154s Hamster::List 154s #zip 154s is lazy 154s on [] and [] 154s returns [] 154s on ["A"] and ["aye"] 154s returns [Hamster::List["A", "aye"]] 154s on ["A"] and [] 154s returns [Hamster::List["A", nil]] 154s on [] and ["A"] 154s returns [Hamster::List[nil, "A"]] 154s on ["A", "B", "C"] and ["aye", "bee", "see"] 154s returns [Hamster::List["A", "aye"], Hamster::List["B", "bee"], Hamster::List["C", "see"]] 154s 154s Hamster 154s .from 154s with {"a"=>1, "b"=>[2, {"c"=>3}, 4], "d"=>#, "e"=>{"f"=>8, "g"=>9}, "h"=>/ijk/} as input 154s should return Hamster::Hash["b" => Hamster::Vector[2, Hamster::Hash["c" => 3], 4], "h" => /ijk/, "e" => Hamster::Hash["f" => 8, "g" => 9], "d" => Hamster::Set[5, 6, 7], "a" => 1] 154s with {} as input 154s should return Hamster::Hash[] 154s with {"a"=>1, "b"=>2, "c"=>3} as input 154s should return Hamster::Hash["b" => 2, "c" => 3, "a" => 1] 154s with [] as input 154s should return Hamster::Vector[] 154s with [1, 2, 3] as input 154s should return Hamster::Vector[1, 2, 3] 154s with # as input 154s should return Hamster::Set[] 154s with # as input 154s should return Hamster::Set[2, 1, 3] 154s with 42 as input 154s should return 42 154s with #> as input 154s should return #> 154s with # as input 154s should return Hamster::Hash[:address => nil, :name => nil] 154s with # as input 154s should return Hamster::Hash[:address => "123 Main", :name => "Dave"] 154s with mixed object 154s should return Hamster data 154s .to_ruby 154s with Hamster::Hash["b" => Hamster::Vector[2, Hamster::Hash["c" => 3], 4], "h" => /ijk/, "e" => Hamster::Hash["f" => 8, "g" => 9], "d" => Hamster::Set[5, 6, 7], "a" => 1] as input 154s should return {"a"=>1, "b"=>[2, {"c"=>3}, 4], "d"=>#, "e"=>{"f"=>8, "g"=>9}, "h"=>/ijk/} (PENDING: Temporarily skipped with xit) 154s with Hamster::Hash[] as input 154s should return {} (PENDING: Temporarily skipped with xit) 154s with Hamster::Hash["b" => 2, "c" => 3, "a" => 1] as input 154s should return {"a"=>1, "b"=>2, "c"=>3} (PENDING: Temporarily skipped with xit) 154s with Hamster::Vector[] as input 154s should return [] (PENDING: Temporarily skipped with xit) 154s with Hamster::Vector[1, 2, 3] as input 154s should return [1, 2, 3] (PENDING: Temporarily skipped with xit) 154s with Hamster::Set[] as input 154s should return # (PENDING: Temporarily skipped with xit) 154s with Hamster::Set[2, 1, 3] as input 154s should return # (PENDING: Temporarily skipped with xit) 154s with 42 as input 154s should return 42 (PENDING: Temporarily skipped with xit) 154s with #> as input 154s should return #> (PENDING: Temporarily skipped with xit) 154s with Hamster::Deque[] as input 154s should return [] 154s with Hamster::Deque[Hamster::Hash["a" => 1]] as input 154s should return [{"a" => 1}] 154s with Hamster::SortedSet[] as input 154s should return ::SortedSet.new 154s with Hamster::SortedSet[1, 2, 3] as input 154s should return ::SortedSet.new 154s with mixed object 154s should return Ruby data structures 154s 154s Hamster::Set 154s #add 154s can add nil to a set 154s works on large sets, with many combinations of input 154s with a unique value 154s preserves the original 154s returns a copy with the superset of values 154s with a duplicate value 154s preserves the original values 154s returns self 154s #<< 154s can add nil to a set 154s works on large sets, with many combinations of input 154s with a unique value 154s preserves the original 154s returns a copy with the superset of values 154s with a duplicate value 154s preserves the original values 154s returns self 154s #add? 154s with a unique value 154s preserves the original 154s returns a copy with the superset of values 154s with a duplicate value 154s preserves the original values 154s returns false 154s 154s Hamster::Set 154s #all? 154s when empty 154s with a block returns true 154s with no block returns true 154s when not empty 154s with a block 154s returns true if the block always returns true 154s returns false if the block ever returns false 154s propagates an exception from the block 154s stops iterating as soon as the block returns false 154s with no block 154s returns true if all values are truthy 154s returns false if any value is nil 154s returns false if any value is false 154s 154s Hamster::Set 154s #any? 154s when empty 154s with a block returns false 154s with no block returns false 154s when not empty 154s with a block 154s returns true if the block ever returns true ("A") 154s returns true if the block ever returns true ("B") 154s returns true if the block ever returns true ("C") 154s returns true if the block ever returns true (nil) 154s returns false if the block always returns false 154s propagates exceptions raised in the block 154s stops iterating as soon as the block returns true 154s with no block 154s returns true if any value is truthy 154s returns false if all values are falsey 154s 154s Hamster::Set 154s #clear 154s on [] 154s preserves the original 154s returns an empty set 154s on ["A"] 154s preserves the original 154s returns an empty set 154s on ["A", "B", "C"] 154s preserves the original 154s returns an empty set 154s from a subclass 154s returns an empty instance of the subclass 154s 154s Hamster::Set 154s #compact 154s on [] 154s preserves the original 154s returns [] 154s on ["A"] 154s preserves the original 154s returns ["A"] 154s on ["A", "B", "C"] 154s preserves the original 154s returns ["A", "B", "C"] 154s on [nil] 154s preserves the original 154s returns [] 154s on [nil, "B"] 154s preserves the original 154s returns ["B"] 154s on ["A", nil] 154s preserves the original 154s returns ["A"] 154s on [nil, nil] 154s preserves the original 154s returns [] 154s on ["A", nil, "C"] 154s preserves the original 154s returns ["A", "C"] 154s on [nil, "B", nil] 154s preserves the original 154s returns ["B"] 154s 154s Hamster::Set 154s .set 154s with no values 154s returns the empty set 154s with a list of values 154s is equivalent to repeatedly using #add 154s 154s Hamster::Set 154s #dup 154s returns self 154s #clone 154s returns self 154s 154s Hamster::Set 154s #count 154s works on large sets 154s on [] 154s with a block 154s returns 0 154s without a block 154s returns length 154s on [1] 154s with a block 154s returns 1 154s without a block 154s returns length 154s on [1, 2] 154s with a block 154s returns 1 154s without a block 154s returns length 154s on [1, 2, 3] 154s with a block 154s returns 2 154s without a block 154s returns length 154s on [1, 2, 3, 4] 154s with a block 154s returns 2 154s without a block 154s returns length 154s on [1, 2, 3, 4, 5] 154s with a block 154s returns 3 154s without a block 154s returns length 154s 154s Hamster::Set 154s #delete 154s works on large sets, with many combinations of input 154s with an existing value 154s preserves the original 154s returns a copy with the remaining values 154s with a non-existing value 154s preserves the original values 154s returns self 154s when removing the last value in a set 154s returns the canonical empty set 154s #delete? 154s with an existing value 154s preserves the original 154s returns a copy with the remaining values 154s with a non-existing value 154s preserves the original values 154s returns false 154s 154s Hamster::Set 154s #difference 154s works on a wide variety of inputs 154s for [] and [] 154s doesn't modify the original Sets 154s returns [] 154s when passed a Ruby Array 154s returns the expected Set 154s for ["A"] and [] 154s doesn't modify the original Sets 154s returns ["A"] 154s when passed a Ruby Array 154s returns the expected Set 154s for ["A"] and ["A"] 154s doesn't modify the original Sets 154s returns [] 154s when passed a Ruby Array 154s returns the expected Set 154s for ["A", "B", "C"] and ["B"] 154s doesn't modify the original Sets 154s returns ["A", "C"] 154s when passed a Ruby Array 154s returns the expected Set 154s for ["A", "B", "C"] and ["A", "C"] 154s doesn't modify the original Sets 154s returns ["B"] 154s when passed a Ruby Array 154s returns the expected Set 154s for ["A", "B", "C", "D", "E", "F", "G", "H"] and [] 154s doesn't modify the original Sets 154s returns ["A", "B", "C", "D", "E", "F", "G", "H"] 154s when passed a Ruby Array 154s returns the expected Set 154s for ["A", "B", "C", "M", "X", "Y", "Z"] and ["B", "C", "D", "E", "F", "G", "H", "I", "J", "X"] 154s doesn't modify the original Sets 154s returns ["A", "M", "Y", "Z"] 154s when passed a Ruby Array 154s returns the expected Set 154s #subtract 155s works on a wide variety of inputs 155s for [] and [] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and [] 155s doesn't modify the original Sets 155s returns ["A"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and ["A"] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B"] 155s doesn't modify the original Sets 155s returns ["A", "C"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["A", "C"] 155s doesn't modify the original Sets 155s returns ["B"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C", "D", "E", "F", "G", "H"] and [] 155s doesn't modify the original Sets 155s returns ["A", "B", "C", "D", "E", "F", "G", "H"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C", "M", "X", "Y", "Z"] and ["B", "C", "D", "E", "F", "G", "H", "I", "J", "X"] 155s doesn't modify the original Sets 155s returns ["A", "M", "Y", "Z"] 155s when passed a Ruby Array 155s returns the expected Set 155s #- 155s works on a wide variety of inputs 155s for [] and [] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and [] 155s doesn't modify the original Sets 155s returns ["A"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and ["A"] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B"] 155s doesn't modify the original Sets 155s returns ["A", "C"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["A", "C"] 155s doesn't modify the original Sets 155s returns ["B"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C", "D", "E", "F", "G", "H"] and [] 155s doesn't modify the original Sets 155s returns ["A", "B", "C", "D", "E", "F", "G", "H"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C", "M", "X", "Y", "Z"] and ["B", "C", "D", "E", "F", "G", "H", "I", "J", "X"] 155s doesn't modify the original Sets 155s returns ["A", "M", "Y", "Z"] 155s when passed a Ruby Array 155s returns the expected Set 155s 155s Hamster::Set 155s #disjoint? 155s for [] and [] 155s returns true 155s for ["A"] and [] 155s returns true 155s for [] and ["A"] 155s returns true 155s for ["A"] and ["A"] 155s returns false 155s for ["A", "B", "C"] and ["B"] 155s returns false 155s for ["B"] and ["A", "B", "C"] 155s returns false 155s for ["A", "B", "C"] and ["D", "E"] 155s returns true 155s for ["F", "G", "H", "I"] and ["A", "B", "C"] 155s returns true 155s for ["A", "B", "C"] and ["A", "B", "C"] 155s returns false 155s for ["A", "B", "C"] and ["A", "B", "C", "D"] 155s returns false 155s for ["D", "E", "F", "G"] and ["A", "B", "C"] 155s returns true 155s 155s Hamster::Set 155s #each 155s yields both of a pair of colliding keys 155s without a block 155s returns an Enumerator 155s with an empty block 155s returns self 155s with a block 155s yields all values 155s 155s Hamster::Set 155s #empty? 155s on [] 155s returns true 155s on ["A"] 155s returns false 155s on ["A", "B", "C"] 155s returns false 155s on [nil] 155s returns false 155s on [false] 155s returns false 155s .empty 155s returns the canonical empty set 155s from a subclass 155s returns an empty instance of the subclass 155s calls overridden #initialize when creating empty Set 155s 155s Hamster::Set 155s #== 155s when comparing to a standard set 155s returns false 155s when comparing to a arbitrary object 155s returns false 155s with an empty set for each comparison 155s returns true 155s with an empty set and a set with nil 155s returns false 155s with a single item array and empty array 155s returns false 155s with matching single item array 155s returns true 155s with mismatching single item array 155s returns false 155s with a multi-item array and single item array 155s returns false 155s with matching multi-item array 155s returns true 155s with a mismatching multi-item array 155s returns true 155s 155s Hamster::Set 155s #eql? 155s when comparing to a standard set 155s returns false 155s when comparing to a arbitrary object 155s returns false 155s when comparing with a subclass of Hamster::Set 155s returns false 155s with an empty set for each comparison 155s returns true 155s with an empty set and a set with nil 155s returns false 155s with a single item array and empty array 155s returns false 155s with matching single item array 155s returns true 155s with mismatching single item array 155s returns false 155s with a multi-item array and single item array 155s returns false 155s with matching multi-item array 155s returns true 155s with a mismatching multi-item array 155s returns true 155s 155s Hamster::Set 155s #exclusion 155s works for a wide variety of inputs 155s for [] and [] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and [] 155s doesn't modify the original Sets 155s returns ["A"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and ["A"] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B"] 155s doesn't modify the original Sets 155s returns ["A", "C"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B", "C", "D"] 155s doesn't modify the original Sets 155s returns ["A", "D"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["D", "E", "F"] 155s doesn't modify the original Sets 155s returns ["A", "B", "C", "D", "E", "F"] 155s when passed a Ruby Array 155s returns the expected Set 155s #^ 155s works for a wide variety of inputs 155s for [] and [] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and [] 155s doesn't modify the original Sets 155s returns ["A"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and ["A"] 155s doesn't modify the original Sets 155s returns [] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B"] 155s doesn't modify the original Sets 155s returns ["A", "C"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B", "C", "D"] 155s doesn't modify the original Sets 155s returns ["A", "D"] 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["D", "E", "F"] 155s doesn't modify the original Sets 155s returns ["A", "B", "C", "D", "E", "F"] 155s when passed a Ruby Array 155s returns the expected Set 155s 155s Hamster::Set 155s #find 155s on [] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on [] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A"] 155s with a block 155s returns "A" 155s without a block 155s returns an Enumerator 155s on ["A"] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A"] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns "A" 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns "B" 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s #detect 155s on [] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on [] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A"] 155s with a block 155s returns "A" 155s without a block 155s returns an Enumerator 155s on ["A"] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A"] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns "A" 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns "B" 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s on ["A", "B", nil] 155s with a block 155s returns nil 155s without a block 155s returns an Enumerator 155s 155s Hamster::Set 155s #first 155s returns nil if only member of set is nil 155s returns the first item yielded by #each 155s on an empty set 155s returns nil 155s on a non-empty set 155s returns an arbitrary value from the set 155s 155s Hamster 155s #flatten 155s on ["A"] 155s preserves the original 155s returns the inlined values 155s on ["A", "B", "C"] 155s preserves the original 155s returns the inlined values 155s on ["A", Hamster::Set["B"], "C"] 155s preserves the original 155s returns the inlined values 155s on [Hamster::Set["A"], Hamster::Set["B"], Hamster::Set["C"]] 155s preserves the original 155s returns the inlined values 155s on an empty set 155s returns an empty set 155s on a set with multiple levels of nesting 155s inlines lower levels of nesting 155s from a subclass 155s returns an instance of the subclass 155s 155s Hamster::Set 155s #grep 155s without a block 155s with an empty set 155s returns the filtered values 155s with a single item set 155s returns the filtered values 155s with a single item set that doesn't contain match 155s returns the filtered values 155s with a multi-item set where one isn't a match 155s returns the filtered values 155s with a block 155s processes each matching item with the block 155s returns the filtered values 155s 155s Hamster::Set 155s #grep_v 155s without a block 155s with an empty set 155s returns the filtered values 155s with a single item set 155s returns the filtered values 155s with a single item set that doesn't contain match 155s returns the filtered values 155s with a multi-item set where one isn't a match 155s returns the filtered values 155s with a block 155s resulting items are processed with the block 155s returns the filtered values 155s 155s Hamster::Set 155s #group_by 155s returns a hash without default proc 155s with a block 155s on [] 155s returns [] 155s on [1] 155s returns [{true=>Hamster::Set[1]}] 155s on [1, 2, 3, 4] 155s returns [{true=>Hamster::Set[3, 1], false=>Hamster::Set[2, 4]}] 155s without a block 155s on [] 155s returns [] 155s on [1] 155s returns [{1=>Hamster::Set[1]}] 155s on [1, 2, 3, 4] 155s returns [{1=>Hamster::Set[1], 2=>Hamster::Set[2], 3=>Hamster::Set[3], 4=>Hamster::Set[4]}] 155s on an empty set 155s returns an empty hash 155s from a subclass 155s returns an Hash whose values are instances of the subclass 155s #group 155s returns a hash without default proc 155s with a block 155s on [] 155s returns [] 155s on [1] 155s returns [{true=>Hamster::Set[1]}] 155s on [1, 2, 3, 4] 155s returns [{true=>Hamster::Set[3, 1], false=>Hamster::Set[2, 4]}] 155s without a block 155s on [] 155s returns [] 155s on [1] 155s returns [{1=>Hamster::Set[1]}] 155s on [1, 2, 3, 4] 155s returns [{1=>Hamster::Set[1], 2=>Hamster::Set[2], 3=>Hamster::Set[3], 4=>Hamster::Set[4]}] 155s on an empty set 155s returns an empty hash 155s from a subclass 155s returns an Hash whose values are instances of the subclass 155s #classify 155s returns a hash without default proc 155s with a block 155s on [] 155s returns [] 155s on [1] 155s returns [{true=>Hamster::Set[1]}] 155s on [1, 2, 3, 4] 155s returns [{true=>Hamster::Set[3, 1], false=>Hamster::Set[2, 4]}] 155s without a block 155s on [] 155s returns [] 155s on [1] 155s returns [{1=>Hamster::Set[1]}] 155s on [1, 2, 3, 4] 155s returns [{1=>Hamster::Set[1], 2=>Hamster::Set[2], 3=>Hamster::Set[3], 4=>Hamster::Set[4]}] 155s on an empty set 155s returns an empty hash 155s from a subclass 155s returns an Hash whose values are instances of the subclass 155s 155s Hamster::Set 155s #hash 155s generates the same hash value for a set regardless of the order things were added to it 155s values are sufficiently distributed 155s on an empty set 155s returns 0 155s 155s Hamster::Set 155s includes Immutable 155s 155s Hamster::Set 155s #include? 155s returns true for an existing value ("A") 155s returns true for an existing value ("B") 155s returns true for an existing value ("C") 155s returns true for an existing value (2.0) 155s returns true for an existing value (nil) 155s returns false for a non-existing value 155s returns true even if existing value is nil 155s returns true even if existing value is false 155s returns false for a mutable item which is mutated after adding 155s uses #eql? for equality 155s returns the right answers after a lot of addings and removings 155s #member? 155s returns true for an existing value ("A") 155s returns true for an existing value ("B") 155s returns true for an existing value ("C") 155s returns true for an existing value (2.0) 155s returns true for an existing value (nil) 155s returns false for a non-existing value 155s returns true even if existing value is nil 155s returns true even if existing value is false 155s returns false for a mutable item which is mutated after adding 155s uses #eql? for equality 155s returns the right answers after a lot of addings and removings 155s 155s Hamster::Set 155s #inspect 155s on [] 155s returns "Hamster::Set[]" 155s returns a string which can be eval'd to get an equivalent set 155s on ["A"] 155s returns "Hamster::Set[\"A\"]" 155s returns a string which can be eval'd to get an equivalent set 155s on ["A", "B", "C"] 155s returns a programmer-readable representation of the set contents 155s returns a string which can be eval'd to get an equivalent set 155s from a subclass 155s returns a programmer-readable representation of the set contents 155s returns a string which can be eval'd to get an equivalent set 155s 155s Hamster::Set 155s #intersect? 155s for [] and [] 155s returns false 155s for ["A"] and [] 155s returns false 155s for [] and ["A"] 155s returns false 155s for ["A"] and ["A"] 155s returns true 155s for ["A", "B", "C"] and ["B"] 155s returns true 155s for ["B"] and ["A", "B", "C"] 155s returns true 155s for ["A", "B", "C"] and ["D", "E"] 155s returns false 155s for ["F", "G", "H", "I"] and ["A", "B", "C"] 155s returns false 155s for ["A", "B", "C"] and ["A", "B", "C"] 155s returns true 155s for ["A", "B", "C"] and ["A", "B", "C", "D"] 155s returns true 155s for ["D", "E", "F", "G"] and ["A", "B", "C"] 155s returns false 155s 155s Hamster::Set 155s #intersection 155s returns results consistent with Array#& 155s for [] and [] 155s returns [], without changing the original Sets 155s for [] and [] 155s returns [], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and [] 155s returns [], without changing the original Sets 155s for [] and ["A"] 155s returns [], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and ["A"] 155s returns ["A"], without changing the original Sets 155s for ["A"] and ["A"] 155s returns ["A"], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B"] 155s returns ["B"], without changing the original Sets 155s for ["B"] and ["A", "B", "C"] 155s returns ["B"], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["A", "C"] 155s returns ["A", "C"], without changing the original Sets 155s for ["A", "C"] and ["A", "B", "C"] 155s returns ["A", "C"], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s #& 155s returns results consistent with Array#& 155s for [] and [] 155s returns [], without changing the original Sets 155s for [] and [] 155s returns [], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and [] 155s returns [], without changing the original Sets 155s for [] and ["A"] 155s returns [], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A"] and ["A"] 155s returns ["A"], without changing the original Sets 155s for ["A"] and ["A"] 155s returns ["A"], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["B"] 155s returns ["B"], without changing the original Sets 155s for ["B"] and ["A", "B", "C"] 155s returns ["B"], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s for ["A", "B", "C"] and ["A", "C"] 155s returns ["A", "C"], without changing the original Sets 155s for ["A", "C"] and ["A", "B", "C"] 155s returns ["A", "C"], without changing the original Sets 155s when passed a Ruby Array 155s returns the expected Set 155s 155s Hamster::Set 155s #join 155s with a separator 155s on [] 155s preserves the original 155s returns "" 155s on ["A"] 155s preserves the original 155s returns "A" 155s on ["A", "B", "C"] 155s preserves the original 155s returns "A|B|C" 155s without a separator 155s on [] 155s preserves the original 155s returns "" 155s on ["A"] 155s preserves the original 155s returns "A" 155s on ["A", "B", "C"] 155s preserves the original 155s returns "ABC" 155s without a separator (with global default separator set) 155s on ['A', 'B', 'C'] 155s preserves the original 155s returns nil 155s 155s Hamster::Set 155s #map 155s works on large sets 155s when empty 155s returns self 155s when not empty 155s with a block 155s preserves the original values 155s returns a new set with the mapped values 155s with no block 155s returns an Enumerator 155s from a subclass 155s returns an instance of the subclass 155s when multiple items map to the same value 155s filters out the duplicates 155s #collect 155s works on large sets 155s when empty 155s returns self 155s when not empty 155s with a block 155s preserves the original values 155s returns a new set with the mapped values 155s with no block 155s returns an Enumerator 155s from a subclass 155s returns an instance of the subclass 155s when multiple items map to the same value 155s filters out the duplicates 155s 155s Hamster::Set 155s #marshal_dump/#marshal_load 155s can survive dumping and loading into a new process 155s is still possible to test items by key after loading 155s 155s Hamster::Set 155s #max 155s with a block 155s on [] 155s returns nil 155s on ["A"] 155s returns "A" 155s on ["Ichi", "Ni", "San"] 155s returns "Ichi" 155s without a block 155s on [] 155s returns nil 155s on ["A"] 155s returns "A" 155s on ["Ichi", "Ni", "San"] 155s returns "San" 155s 155s Hamster::Set 155s #min 155s with a block 155s on [] 155s returns nil 155s on ["A"] 155s returns "A" 155s on ["Ichi", "Ni", "San"] 155s returns "Ni" 155s without a block 155s on [] 155s returns nil 155s on ["A"] 155s returns "A" 155s on ["Ichi", "Ni", "San"] 155s returns "Ichi" 155s 155s Hamster::Set 155s .new 155s initializes a new set 155s accepts a Range 155s returns a Set which doesn't change even if the initializer is mutated 155s is amenable to overriding of #initialize 155s from a subclass 155s returns a frozen instance of the subclass 155s [] 155s accepts any number of arguments and initializes a new set 155s 155s Hamster::Set 155s #none? 155s when empty 155s with a block returns true 155s with no block returns true 155s when not empty 155s with a block 155s returns false if the block ever returns true ("A") 155s returns false if the block ever returns true ("B") 155s returns false if the block ever returns true ("C") 155s returns false if the block ever returns true (nil) 155s returns true if the block always returns false 155s stops iterating as soon as the block returns true 155s with no block 155s returns false if any value is truthy 155s returns true if all values are falsey 155s 155s Hamster::Set 155s #one? 155s when empty 155s with a block returns false 155s with no block returns false 155s when not empty 155s with a block 155s returns false if the block returns true more than once 155s returns false if the block never returns true 155s returns true if the block only returns true once 155s with no block 155s returns false if more than one value is truthy 155s returns true if only one value is truthy 155s returns false if no values are truthy 155s 155s Hamster::Set 155s #partition 155s on [] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [1] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [1, 2] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [1, 2, 3] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [1, 2, 3, 4] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [2, 3, 4] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [3, 4] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s on [4] 155s with a block 155s preserves the original 155s returns a frozen array with two items 155s correctly identifies the matches 155s correctly identifies the remainder 155s without a block 155s returns an Enumerator 155s 155s Hamster::Set 155s #product 155s on [] 155s returns 1 155s doesn't change the original Set 155s on [2] 155s returns 2 155s doesn't change the original Set 155s on [1, 3, 5, 7, 11] 155s returns 1155 155s doesn't change the original Set 155s 155s Hamster::Set 155s #reduce 155s on [] 155s with an initial value of 10 155s and a block 155s returns 10 155s on [1] 155s with an initial value of 10 155s and a block 155s returns 9 155s on [1, 2, 3] 155s with an initial value of 10 155s and a block 155s returns 4 155s on [] 155s with no initial value 155s and a block 155s returns nil 155s on [1] 155s with no initial value 155s and a block 155s returns 1 155s on [1, 2, 3] 155s with no initial value 155s and a block 155s returns 6 155s with no block and a symbol argument 155s uses the symbol as the name of a method to reduce with 155s with no block and a string argument 155s uses the string as the name of a method to reduce with 155s #inject 155s on [] 155s with an initial value of 10 155s and a block 155s returns 10 155s on [1] 155s with an initial value of 10 155s and a block 155s returns 9 155s on [1, 2, 3] 155s with an initial value of 10 155s and a block 155s returns 4 155s on [] 155s with no initial value 155s and a block 155s returns nil 155s on [1] 155s with no initial value 155s and a block 155s returns 1 155s on [1, 2, 3] 155s with no initial value 155s and a block 155s returns 6 155s with no block and a symbol argument 155s uses the symbol as the name of a method to reduce with 155s with no block and a string argument 155s uses the string as the name of a method to reduce with 155s 155s Hamster::Set 155s #reject 155s when nothing matches 155s returns self 155s when only some things match 155s with a block 155s preserves the original 155s returns a set with the matching values 155s with no block 155s returns self 155s on a large set, with many combinations of input 155s still works 155s #delete_if 155s when nothing matches 155s returns self 155s when only some things match 155s with a block 155s preserves the original 155s returns a set with the matching values 155s with no block 155s returns self 155s on a large set, with many combinations of input 155s still works 155s 155s Hamster::Set 155s #reverse_each 155s without a block 155s returns an Enumerator 155s with an empty block 155s returns self 155s with a block 155s yields all values 155s 155s Hamster::Set 155s #sample 155s returns a randomly chosen item 155s 155s Hamster::Set 155s #select 156s works on a large set, with many combinations of input 156s when everything matches 156s returns self 156s when only some things match 156s with a block 156s preserves the original 156s returns a set with the matching values 156s with no block 156s returns an Enumerator 156s when nothing matches 156s preserves the original 156s returns the canonical empty set 156s from a subclass 156s returns an instance of the same class 156s #find_all 156s works on a large set, with many combinations of input 156s when everything matches 156s returns self 156s when only some things match 156s with a block 156s preserves the original 156s returns a set with the matching values 156s with no block 156s returns an Enumerator 156s when nothing matches 156s preserves the original 156s returns the canonical empty set 156s from a subclass 156s returns an instance of the same class 156s 156s Hamster::Set 156s #size 156s returns 0 for [] 156s returns 1 for ["A"] 156s returns 3 for ["A", "B", "C"] 156s #length 156s returns 0 for [] 156s returns 1 for ["A"] 156s returns 3 for ["A", "B", "C"] 156s 156s Hamster::Set 156s #sort 156s on [] 156s with a block 156s returns [] 156s doesn't change the original Set 156s without a block 156s returns [] 156s doesn't change the original Set 156s on ["A"] 156s with a block 156s returns ["A"] 156s doesn't change the original Set 156s without a block 156s returns ["A"] 156s doesn't change the original Set 156s on ["Ichi", "Ni", "San"] 156s with a block 156s returns ["Ni", "San", "Ichi"] 156s doesn't change the original Set 156s without a block 156s returns ["Ichi", "Ni", "San"] 156s doesn't change the original Set 156s #sort_by 156s on [] 156s with a block 156s returns [] 156s doesn't change the original Set 156s without a block 156s returns [] 156s doesn't change the original Set 156s on ["A"] 156s with a block 156s returns ["A"] 156s doesn't change the original Set 156s without a block 156s returns ["A"] 156s doesn't change the original Set 156s on ["Ichi", "Ni", "San"] 156s with a block 156s returns ["Ni", "San", "Ichi"] 156s doesn't change the original Set 156s without a block 156s returns ["Ichi", "Ni", "San"] 156s doesn't change the original Set 156s #sort_by 156s only calls the passed block once for each item 156s 156s Hamster::Set 156s #subset? 156s for [] and [] 156s returns true 156s for ["A"] and [] 156s returns false 156s for [] and ["A"] 156s returns true 156s for ["A"] and ["A"] 156s returns true 156s for ["A", "B", "C"] and ["B"] 156s returns false 156s for ["B"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "C"] 156s returns false 156s for ["A", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns true 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns false 156s #<= 156s for [] and [] 156s returns true 156s for ["A"] and [] 156s returns false 156s for [] and ["A"] 156s returns true 156s for ["A"] and ["A"] 156s returns true 156s for ["A", "B", "C"] and ["B"] 156s returns false 156s for ["B"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "C"] 156s returns false 156s for ["A", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns true 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns false 156s #proper_subset? 156s for [] and [] 156s returns false 156s for ["A"] and [] 156s returns false 156s for [] and ["A"] 156s returns true 156s for ["A"] and ["A"] 156s returns false 156s for ["A", "B", "C"] and ["B"] 156s returns false 156s for ["B"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "C"] 156s returns false 156s for ["A", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns true 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns false 156s #< 156s for [] and [] 156s returns false 156s for ["A"] and [] 156s returns false 156s for [] and ["A"] 156s returns true 156s for ["A"] and ["A"] 156s returns false 156s for ["A", "B", "C"] and ["B"] 156s returns false 156s for ["B"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "C"] 156s returns false 156s for ["A", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns true 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns false 156s 156s Hamster::Set 156s #sum 156s on [] 156s returns 0 156s doesn't change the original Set 156s on [2] 156s returns 2 156s doesn't change the original Set 156s on [1, 3, 5, 7, 11] 156s returns 27 156s doesn't change the original Set 156s 156s Hamster::Set 156s #superset? 156s for [] and [] 156s returns true 156s for ["A"] and [] 156s returns true 156s for [] and ["A"] 156s returns false 156s for ["A"] and ["A"] 156s returns true 156s for ["A", "B", "C"] and ["B"] 156s returns true 156s for ["B"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "C"] 156s returns true 156s for ["A", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns false 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns true 156s #>= 156s for [] and [] 156s returns true 156s for ["A"] and [] 156s returns true 156s for [] and ["A"] 156s returns false 156s for ["A"] and ["A"] 156s returns true 156s for ["A", "B", "C"] and ["B"] 156s returns true 156s for ["B"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "C"] 156s returns true 156s for ["A", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns false 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns true 156s #proper_superset? 156s for [] and [] 156s returns false 156s for ["A"] and [] 156s returns true 156s for [] and ["A"] 156s returns false 156s for ["A"] and ["A"] 156s returns false 156s for ["A", "B", "C"] and ["B"] 156s returns true 156s for ["B"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "C"] 156s returns true 156s for ["A", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns false 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns true 156s #> 156s for [] and [] 156s returns false 156s for ["A"] and [] 156s returns true 156s for [] and ["A"] 156s returns false 156s for ["A"] and ["A"] 156s returns false 156s for ["A", "B", "C"] and ["B"] 156s returns true 156s for ["B"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "C"] 156s returns true 156s for ["A", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns false 156s for ["A", "B", "C", "D"] and ["A", "B", "C"] 156s returns true 156s 156s Hamster::Set 156s #to_a 156s on 'a'..'a' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'b' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'c' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'d' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'e' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'f' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'g' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'h' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'i' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'j' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'k' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'l' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'m' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'n' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'o' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'p' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'q' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'r' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'s' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'t' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'u' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'v' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'w' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'x' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'y' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'z' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s #entries 156s on 'a'..'a' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'b' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'c' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'d' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'e' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'f' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'g' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'h' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'i' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'j' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'k' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'l' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'m' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'n' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'o' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'p' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'q' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'r' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'s' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'t' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'u' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'v' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'w' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'x' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'y' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s on 'a'..'z' 156s returns an equivalent array 156s doesn't change the original Set 156s returns a mutable array 156s 156s Hamster::Set 156s #to_list 156s on [] 156s returns a list 156s doesn't change the original Set 156s the returned list 156s has the correct length 156s contains all values 156s on ["A"] 156s returns a list 156s doesn't change the original Set 156s the returned list 156s has the correct length 156s contains all values 156s on ["A", "B", "C"] 156s returns a list 156s doesn't change the original Set 156s the returned list 156s has the correct length 156s contains all values 156s 156s Hamster::Set 156s #to_set 156s on [] 156s returns self 156s on ["A"] 156s returns self 156s on ["A", "B", "C"] 156s returns self 156s 156s Hamster::Set 156s #union 156s for [] and [] 156s returns [], without changing the original Sets 156s for [] and [] 156s returns [], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and [] 156s returns ["A", "B", "C"], without changing the original Sets 156s for [] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["X", "Y", "Z"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s for ["X", "Y", "Z"] and ["A", "B", "C"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s when receiving a subset 156s returns self 156s #| 156s for [] and [] 156s returns [], without changing the original Sets 156s for [] and [] 156s returns [], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and [] 156s returns ["A", "B", "C"], without changing the original Sets 156s for [] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["X", "Y", "Z"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s for ["X", "Y", "Z"] and ["A", "B", "C"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s when receiving a subset 156s returns self 156s #+ 156s for [] and [] 156s returns [], without changing the original Sets 156s for [] and [] 156s returns [], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and [] 156s returns ["A", "B", "C"], without changing the original Sets 156s for [] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["X", "Y", "Z"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s for ["X", "Y", "Z"] and ["A", "B", "C"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s when receiving a subset 156s returns self 156s #merge 156s for [] and [] 156s returns [], without changing the original Sets 156s for [] and [] 156s returns [], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and ["A"] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for [] and ["A"] 156s returns ["A"], without changing the original Sets 156s for ["A"] and [] 156s returns ["A"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and [] 156s returns ["A", "B", "C"], without changing the original Sets 156s for [] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns ["A", "B", "C"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s for ["A", "B", "C"] and ["X", "Y", "Z"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s for ["X", "Y", "Z"] and ["A", "B", "C"] 156s returns ["A", "B", "C", "X", "Y", "Z"], without changing the original Sets 156s when passed a Ruby Array 156s returns the expected Set 156s from a subclass 156s returns an instance of the subclass 156s when receiving a subset 156s returns self 156s 156s Hamster::SortedSet 156s #above 156s when called without a block 156s returns a sorted set of all items higher than the argument 156s when called with a block 156s yields all the items higher than the argument 156s on an empty set 156s returns an empty set 156s with an argument higher than all the values in the set 156s returns an empty set 156s 156s Hamster::SortedSet 156s #add 156s with a unique value 156s preserves the original 156s returns a copy with the superset of values (in order) 156s with a duplicate value 156s preserves the original values 156s returns self 156s on a set ordered by a comparator 156s inserts the new item in the correct place 156s #<< 156s with a unique value 156s preserves the original 156s returns a copy with the superset of values (in order) 156s with a duplicate value 156s preserves the original values 156s returns self 156s on a set ordered by a comparator 156s inserts the new item in the correct place 156s #add? 156s with a unique value 156s preserves the original 156s returns a copy with the superset of values 156s with a duplicate value 156s preserves the original values 156s returns false 156s 156s Hamster::SortedSet 156s #at 156s [] with 10 156s returns nil 156s ["A"] with 10 156s returns nil 156s ["A", "B", "C"] with 0 156s returns "A" 156s ["A", "B", "C"] with 1 156s returns "B" 156s ["A", "B", "C"] with 2 156s returns "C" 156s ["A", "B", "C"] with 3 156s returns nil 156s ["A", "B", "C"] with -1 156s returns "C" 156s ["A", "B", "C"] with -2 156s returns "B" 156s ["A", "B", "C"] with -3 156s returns "A" 156s ["A", "B", "C"] with -4 156s returns nil 156s 156s Hamster::SortedSet 156s #below 156s when called without a block 156s returns a sorted set of all items lower than the argument 156s when called with a block 156s yields all the items lower than the argument 156s on an empty set 156s returns an empty set 156s with an argument lower than all the values in the set 156s returns an empty set 156s 156s Hamster::SortedSet 156s #between 156s when called without a block 156s returns a sorted set of all items from the first argument to the second 156s when called with a block 156s yields all the items lower than the argument 156s on an empty set 156s returns an empty set 156s with a 'to' argument lower than the 'from' argument 156s returns an empty set 156s 156s Hamster::SortedSet 156s #clear 156s on [] 156s preserves the original 156s returns an empty set 156s on ["A"] 156s preserves the original 156s returns an empty set 156s on ["A", "B", "C"] 156s preserves the original 156s returns an empty set 156s from a subclass 156s returns an empty instance of the subclass 156s with a comparator 156s returns an empty instance with same comparator 156s 156s Hamster::SortedSet 156s on [] 156s returns self 156s on ["A"] 156s returns self 156s on ["A", "B", "C"] 156s returns self 156s on 1..32 156s returns self 156s on [] 156s returns self 156s on ["A"] 156s returns self 156s on ["A", "B", "C"] 156s returns self 156s on 1..32 156s returns self 156s 156s Hamster::SortedSet 156s #delete_at 156s removes the element at the specified index 156s makes no modification if the index is out of range 156s 156s Hamster::SortedSet 156s #delete 156s on an empty set 156s returns an empty set 156s with an existing value 156s preserves the original 156s returns a copy with the remaining of values 156s with a non-existing value 156s preserves the original values 156s returns self 156s when removing the last value in a sorted set 156s maintains the set order 156s when the set is in natural order 156s returns the canonical empty set 156s on [1, 2, 3], when deleting [1, 2, 3] 156s returns [] 156s on [1, 2, 3, 4], when deleting [1, 2, 3] 156s returns [4] 156s on [1, 2, 3, 4], when deleting [1, 2, 4] 156s returns [3] 156s on [1, 2, 3, 4], when deleting [1, 3, 4] 156s returns [2] 156s on [1, 2, 3, 4], when deleting [2, 3, 4] 156s returns [1] 156s on [1, 2, 3, 4, 5], when deleting [1, 2, 3] 156s returns [4, 5] 156s on [1, 2, 3, 4, 5], when deleting [1, 2, 4] 156s returns [3, 5] 156s on [1, 2, 3, 4, 5], when deleting [1, 2, 5] 156s returns [3, 4] 156s on [1, 2, 3, 4, 5], when deleting [1, 3, 4] 156s returns [2, 5] 156s on [1, 2, 3, 4, 5], when deleting [1, 3, 5] 156s returns [2, 4] 156s on [1, 2, 3, 4, 5], when deleting [1, 4, 5] 156s returns [2, 3] 156s on [1, 2, 3, 4, 5], when deleting [2, 3, 4] 156s returns [1, 5] 156s on [1, 2, 3, 4, 5], when deleting [2, 3, 5] 156s returns [1, 4] 156s on [1, 2, 3, 4, 5], when deleting [2, 4, 5] 156s returns [1, 3] 156s on [1, 2, 3, 4, 5], when deleting [3, 4, 5] 156s returns [1, 2] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 2, 3] 156s returns [4, 5, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 2, 4] 156s returns [3, 5, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 2, 5] 156s returns [3, 4, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 2, 6] 156s returns [3, 4, 5] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 3, 4] 156s returns [2, 5, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 3, 5] 156s returns [2, 4, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 3, 6] 156s returns [2, 4, 5] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 4, 5] 156s returns [2, 3, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 4, 6] 156s returns [2, 3, 5] 156s on [1, 2, 3, 4, 5, 6], when deleting [1, 5, 6] 156s returns [2, 3, 4] 156s on [1, 2, 3, 4, 5, 6], when deleting [2, 3, 4] 156s returns [1, 5, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [2, 3, 5] 156s returns [1, 4, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [2, 3, 6] 156s returns [1, 4, 5] 156s on [1, 2, 3, 4, 5, 6], when deleting [2, 4, 5] 156s returns [1, 3, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [2, 4, 6] 156s returns [1, 3, 5] 156s on [1, 2, 3, 4, 5, 6], when deleting [2, 5, 6] 156s returns [1, 3, 4] 156s on [1, 2, 3, 4, 5, 6], when deleting [3, 4, 5] 156s returns [1, 2, 6] 156s on [1, 2, 3, 4, 5, 6], when deleting [3, 4, 6] 156s returns [1, 2, 5] 156s on [1, 2, 3, 4, 5, 6], when deleting [3, 5, 6] 156s returns [1, 2, 4] 156s on [1, 2, 3, 4, 5, 6], when deleting [4, 5, 6] 156s returns [1, 2, 3] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 2, 3] 156s returns [4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 2, 4] 156s returns [3, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 2, 5] 156s returns [3, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 2, 6] 156s returns [3, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 2, 7] 156s returns [3, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 3, 4] 156s returns [2, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 3, 5] 156s returns [2, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 3, 6] 156s returns [2, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 3, 7] 156s returns [2, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 4, 5] 156s returns [2, 3, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 4, 6] 156s returns [2, 3, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 4, 7] 156s returns [2, 3, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 5, 6] 156s returns [2, 3, 4, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 5, 7] 156s returns [2, 3, 4, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [1, 6, 7] 156s returns [2, 3, 4, 5] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 3, 4] 156s returns [1, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 3, 5] 156s returns [1, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 3, 6] 156s returns [1, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 3, 7] 156s returns [1, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 4, 5] 156s returns [1, 3, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 4, 6] 156s returns [1, 3, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 4, 7] 156s returns [1, 3, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 5, 6] 156s returns [1, 3, 4, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 5, 7] 156s returns [1, 3, 4, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [2, 6, 7] 156s returns [1, 3, 4, 5] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [3, 4, 5] 156s returns [1, 2, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [3, 4, 6] 156s returns [1, 2, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [3, 4, 7] 156s returns [1, 2, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [3, 5, 6] 156s returns [1, 2, 4, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [3, 5, 7] 156s returns [1, 2, 4, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [3, 6, 7] 156s returns [1, 2, 4, 5] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [4, 5, 6] 156s returns [1, 2, 3, 7] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [4, 5, 7] 156s returns [1, 2, 3, 6] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [4, 6, 7] 156s returns [1, 2, 3, 5] 156s on [1, 2, 3, 4, 5, 6, 7], when deleting [5, 6, 7] 156s returns [1, 2, 3, 4] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 2, 3] 156s returns [4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 2, 4] 156s returns [3, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 2, 5] 156s returns [3, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 2, 6] 156s returns [3, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 2, 7] 156s returns [3, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 2, 8] 156s returns [3, 4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 3, 4] 156s returns [2, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 3, 5] 156s returns [2, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 3, 6] 156s returns [2, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 3, 7] 156s returns [2, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 3, 8] 156s returns [2, 4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 4, 5] 156s returns [2, 3, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 4, 6] 156s returns [2, 3, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 4, 7] 156s returns [2, 3, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 4, 8] 156s returns [2, 3, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 5, 6] 156s returns [2, 3, 4, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 5, 7] 156s returns [2, 3, 4, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 5, 8] 156s returns [2, 3, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 6, 7] 156s returns [2, 3, 4, 5, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 6, 8] 156s returns [2, 3, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [1, 7, 8] 156s returns [2, 3, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 3, 4] 156s returns [1, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 3, 5] 156s returns [1, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 3, 6] 156s returns [1, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 3, 7] 156s returns [1, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 3, 8] 156s returns [1, 4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 4, 5] 156s returns [1, 3, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 4, 6] 156s returns [1, 3, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 4, 7] 156s returns [1, 3, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 4, 8] 156s returns [1, 3, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 5, 6] 156s returns [1, 3, 4, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 5, 7] 156s returns [1, 3, 4, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 5, 8] 156s returns [1, 3, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 6, 7] 156s returns [1, 3, 4, 5, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 6, 8] 156s returns [1, 3, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [2, 7, 8] 156s returns [1, 3, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 4, 5] 156s returns [1, 2, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 4, 6] 156s returns [1, 2, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 4, 7] 156s returns [1, 2, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 4, 8] 156s returns [1, 2, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 5, 6] 156s returns [1, 2, 4, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 5, 7] 156s returns [1, 2, 4, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 5, 8] 156s returns [1, 2, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 6, 7] 156s returns [1, 2, 4, 5, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 6, 8] 156s returns [1, 2, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [3, 7, 8] 156s returns [1, 2, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [4, 5, 6] 156s returns [1, 2, 3, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [4, 5, 7] 156s returns [1, 2, 3, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [4, 5, 8] 156s returns [1, 2, 3, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [4, 6, 7] 156s returns [1, 2, 3, 5, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [4, 6, 8] 156s returns [1, 2, 3, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [4, 7, 8] 156s returns [1, 2, 3, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [5, 6, 7] 156s returns [1, 2, 3, 4, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [5, 6, 8] 156s returns [1, 2, 3, 4, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [5, 7, 8] 156s returns [1, 2, 3, 4, 6] 156s on [1, 2, 3, 4, 5, 6, 7, 8], when deleting [6, 7, 8] 156s returns [1, 2, 3, 4, 5] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 3] 156s returns [4, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 4] 156s returns [3, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 5] 156s returns [3, 4, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 6] 156s returns [3, 4, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 7] 156s returns [3, 4, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 8] 156s returns [3, 4, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 2, 9] 156s returns [3, 4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 3, 4] 156s returns [2, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 3, 5] 156s returns [2, 4, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 3, 6] 156s returns [2, 4, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 3, 7] 156s returns [2, 4, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 3, 8] 156s returns [2, 4, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 3, 9] 156s returns [2, 4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 4, 5] 156s returns [2, 3, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 4, 6] 156s returns [2, 3, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 4, 7] 156s returns [2, 3, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 4, 8] 156s returns [2, 3, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 4, 9] 156s returns [2, 3, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 5, 6] 156s returns [2, 3, 4, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 5, 7] 156s returns [2, 3, 4, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 5, 8] 156s returns [2, 3, 4, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 5, 9] 156s returns [2, 3, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 6, 7] 156s returns [2, 3, 4, 5, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 6, 8] 156s returns [2, 3, 4, 5, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 6, 9] 156s returns [2, 3, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 7, 8] 156s returns [2, 3, 4, 5, 6, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 7, 9] 156s returns [2, 3, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [1, 8, 9] 156s returns [2, 3, 4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 3, 4] 156s returns [1, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 3, 5] 156s returns [1, 4, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 3, 6] 156s returns [1, 4, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 3, 7] 156s returns [1, 4, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 3, 8] 156s returns [1, 4, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 3, 9] 156s returns [1, 4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 4, 5] 156s returns [1, 3, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 4, 6] 156s returns [1, 3, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 4, 7] 156s returns [1, 3, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 4, 8] 156s returns [1, 3, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 4, 9] 156s returns [1, 3, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 5, 6] 156s returns [1, 3, 4, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 5, 7] 156s returns [1, 3, 4, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 5, 8] 156s returns [1, 3, 4, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 5, 9] 156s returns [1, 3, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 6, 7] 156s returns [1, 3, 4, 5, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 6, 8] 156s returns [1, 3, 4, 5, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 6, 9] 156s returns [1, 3, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 7, 8] 156s returns [1, 3, 4, 5, 6, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 7, 9] 156s returns [1, 3, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [2, 8, 9] 156s returns [1, 3, 4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 4, 5] 156s returns [1, 2, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 4, 6] 156s returns [1, 2, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 4, 7] 156s returns [1, 2, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 4, 8] 156s returns [1, 2, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 4, 9] 156s returns [1, 2, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 5, 6] 156s returns [1, 2, 4, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 5, 7] 156s returns [1, 2, 4, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 5, 8] 156s returns [1, 2, 4, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 5, 9] 156s returns [1, 2, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 6, 7] 156s returns [1, 2, 4, 5, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 6, 8] 156s returns [1, 2, 4, 5, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 6, 9] 156s returns [1, 2, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 7, 8] 156s returns [1, 2, 4, 5, 6, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 7, 9] 156s returns [1, 2, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [3, 8, 9] 156s returns [1, 2, 4, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 5, 6] 156s returns [1, 2, 3, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 5, 7] 156s returns [1, 2, 3, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 5, 8] 156s returns [1, 2, 3, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 5, 9] 156s returns [1, 2, 3, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 6, 7] 156s returns [1, 2, 3, 5, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 6, 8] 156s returns [1, 2, 3, 5, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 6, 9] 156s returns [1, 2, 3, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 7, 8] 156s returns [1, 2, 3, 5, 6, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 7, 9] 156s returns [1, 2, 3, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [4, 8, 9] 156s returns [1, 2, 3, 5, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [5, 6, 7] 156s returns [1, 2, 3, 4, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [5, 6, 8] 156s returns [1, 2, 3, 4, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [5, 6, 9] 156s returns [1, 2, 3, 4, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [5, 7, 8] 156s returns [1, 2, 3, 4, 6, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [5, 7, 9] 156s returns [1, 2, 3, 4, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [5, 8, 9] 156s returns [1, 2, 3, 4, 6, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [6, 7, 8] 156s returns [1, 2, 3, 4, 5, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [6, 7, 9] 156s returns [1, 2, 3, 4, 5, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [6, 8, 9] 156s returns [1, 2, 3, 4, 5, 7] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9], when deleting [7, 8, 9] 156s returns [1, 2, 3, 4, 5, 6] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 3] 156s returns [4, 5, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 4] 156s returns [3, 5, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 5] 156s returns [3, 4, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 6] 156s returns [3, 4, 5, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 7] 156s returns [3, 4, 5, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 8] 156s returns [3, 4, 5, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 9] 156s returns [3, 4, 5, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 2, 10] 156s returns [3, 4, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 4] 156s returns [2, 5, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 5] 156s returns [2, 4, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 6] 156s returns [2, 4, 5, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 7] 156s returns [2, 4, 5, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 8] 156s returns [2, 4, 5, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 9] 156s returns [2, 4, 5, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 3, 10] 156s returns [2, 4, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 4, 5] 156s returns [2, 3, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 4, 6] 156s returns [2, 3, 5, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 4, 7] 156s returns [2, 3, 5, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 4, 8] 156s returns [2, 3, 5, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 4, 9] 156s returns [2, 3, 5, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 4, 10] 156s returns [2, 3, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 5, 6] 156s returns [2, 3, 4, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 5, 7] 156s returns [2, 3, 4, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 5, 8] 156s returns [2, 3, 4, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 5, 9] 156s returns [2, 3, 4, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 5, 10] 156s returns [2, 3, 4, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 6, 7] 156s returns [2, 3, 4, 5, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 6, 8] 156s returns [2, 3, 4, 5, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 6, 9] 156s returns [2, 3, 4, 5, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 6, 10] 156s returns [2, 3, 4, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 7, 8] 156s returns [2, 3, 4, 5, 6, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 7, 9] 156s returns [2, 3, 4, 5, 6, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 7, 10] 156s returns [2, 3, 4, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 8, 9] 156s returns [2, 3, 4, 5, 6, 7, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 8, 10] 156s returns [2, 3, 4, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [1, 9, 10] 156s returns [2, 3, 4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 4] 156s returns [1, 5, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 5] 156s returns [1, 4, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 6] 156s returns [1, 4, 5, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 7] 156s returns [1, 4, 5, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 8] 156s returns [1, 4, 5, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 9] 156s returns [1, 4, 5, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 3, 10] 156s returns [1, 4, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 4, 5] 156s returns [1, 3, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 4, 6] 156s returns [1, 3, 5, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 4, 7] 156s returns [1, 3, 5, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 4, 8] 156s returns [1, 3, 5, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 4, 9] 156s returns [1, 3, 5, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 4, 10] 156s returns [1, 3, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 5, 6] 156s returns [1, 3, 4, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 5, 7] 156s returns [1, 3, 4, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 5, 8] 156s returns [1, 3, 4, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 5, 9] 156s returns [1, 3, 4, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 5, 10] 156s returns [1, 3, 4, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 6, 7] 156s returns [1, 3, 4, 5, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 6, 8] 156s returns [1, 3, 4, 5, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 6, 9] 156s returns [1, 3, 4, 5, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 6, 10] 156s returns [1, 3, 4, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 7, 8] 156s returns [1, 3, 4, 5, 6, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 7, 9] 156s returns [1, 3, 4, 5, 6, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 7, 10] 156s returns [1, 3, 4, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 8, 9] 156s returns [1, 3, 4, 5, 6, 7, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 8, 10] 156s returns [1, 3, 4, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [2, 9, 10] 156s returns [1, 3, 4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 4, 5] 156s returns [1, 2, 6, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 4, 6] 156s returns [1, 2, 5, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 4, 7] 156s returns [1, 2, 5, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 4, 8] 156s returns [1, 2, 5, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 4, 9] 156s returns [1, 2, 5, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 4, 10] 156s returns [1, 2, 5, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 5, 6] 156s returns [1, 2, 4, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 5, 7] 156s returns [1, 2, 4, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 5, 8] 156s returns [1, 2, 4, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 5, 9] 156s returns [1, 2, 4, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 5, 10] 156s returns [1, 2, 4, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 6, 7] 156s returns [1, 2, 4, 5, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 6, 8] 156s returns [1, 2, 4, 5, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 6, 9] 156s returns [1, 2, 4, 5, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 6, 10] 156s returns [1, 2, 4, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 7, 8] 156s returns [1, 2, 4, 5, 6, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 7, 9] 156s returns [1, 2, 4, 5, 6, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 7, 10] 156s returns [1, 2, 4, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 8, 9] 156s returns [1, 2, 4, 5, 6, 7, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 8, 10] 156s returns [1, 2, 4, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [3, 9, 10] 156s returns [1, 2, 4, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 5, 6] 156s returns [1, 2, 3, 7, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 5, 7] 156s returns [1, 2, 3, 6, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 5, 8] 156s returns [1, 2, 3, 6, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 5, 9] 156s returns [1, 2, 3, 6, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 5, 10] 156s returns [1, 2, 3, 6, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 6, 7] 156s returns [1, 2, 3, 5, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 6, 8] 156s returns [1, 2, 3, 5, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 6, 9] 156s returns [1, 2, 3, 5, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 6, 10] 156s returns [1, 2, 3, 5, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 7, 8] 156s returns [1, 2, 3, 5, 6, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 7, 9] 156s returns [1, 2, 3, 5, 6, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 7, 10] 156s returns [1, 2, 3, 5, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 8, 9] 156s returns [1, 2, 3, 5, 6, 7, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 8, 10] 156s returns [1, 2, 3, 5, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [4, 9, 10] 156s returns [1, 2, 3, 5, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 6, 7] 156s returns [1, 2, 3, 4, 8, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 6, 8] 156s returns [1, 2, 3, 4, 7, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 6, 9] 156s returns [1, 2, 3, 4, 7, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 6, 10] 156s returns [1, 2, 3, 4, 7, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 7, 8] 156s returns [1, 2, 3, 4, 6, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 7, 9] 156s returns [1, 2, 3, 4, 6, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 7, 10] 156s returns [1, 2, 3, 4, 6, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 8, 9] 156s returns [1, 2, 3, 4, 6, 7, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 8, 10] 156s returns [1, 2, 3, 4, 6, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [5, 9, 10] 156s returns [1, 2, 3, 4, 6, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [6, 7, 8] 156s returns [1, 2, 3, 4, 5, 9, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [6, 7, 9] 156s returns [1, 2, 3, 4, 5, 8, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [6, 7, 10] 156s returns [1, 2, 3, 4, 5, 8, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [6, 8, 9] 156s returns [1, 2, 3, 4, 5, 7, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [6, 8, 10] 156s returns [1, 2, 3, 4, 5, 7, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [6, 9, 10] 156s returns [1, 2, 3, 4, 5, 7, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [7, 8, 9] 156s returns [1, 2, 3, 4, 5, 6, 10] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [7, 8, 10] 156s returns [1, 2, 3, 4, 5, 6, 9] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [7, 9, 10] 156s returns [1, 2, 3, 4, 5, 6, 8] 156s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], when deleting [8, 9, 10] 156s returns [1, 2, 3, 4, 5, 6, 7] 156s #delete? 156s with an existing value 156s preserves the original 156s returns a copy with the remaining values 156s with a non-existing value 156s preserves the original values 156s returns false 156s 156s Hamster::SortedSet 156s #difference 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns [] 156s for ["A", "B", "C"] and ["B"] 156s returns ["A", "C"] 156s for ["A", "B", "C"] and ["A", "C"] 156s returns ["B"] 156s for ["A", "B", "C", "D", "E", "F"] and ["B", "E", "F", "G", "M", "X"] 156s returns ["A", "C", "D"] 156s #subtract 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns [] 156s for ["A", "B", "C"] and ["B"] 156s returns ["A", "C"] 156s for ["A", "B", "C"] and ["A", "C"] 156s returns ["B"] 156s for ["A", "B", "C", "D", "E", "F"] and ["B", "E", "F", "G", "M", "X"] 156s returns ["A", "C", "D"] 156s #- 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns [] 156s for ["A", "B", "C"] and ["B"] 156s returns ["A", "C"] 156s for ["A", "B", "C"] and ["A", "C"] 156s returns ["B"] 156s for ["A", "B", "C", "D", "E", "F"] and ["B", "E", "F", "G", "M", "X"] 156s returns ["A", "C", "D"] 156s 156s Hamster::SortedSet 156s #disjoint? 156s for [] and [] 156s returns true 156s for ["A"] and [] 156s returns true 156s for [] and ["A"] 156s returns true 156s for ["A"] and ["A"] 156s returns false 156s for ["A", "B", "C"] and ["B"] 156s returns false 156s for ["B"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["D", "E"] 156s returns true 156s for ["F", "G", "H", "I"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns false 156s for ["D", "E", "F", "G"] and ["A", "B", "C"] 156s returns true 156s 156s Hamster::SortedSet 156s #drop 156s 0 from [] 156s preserves the original 156s returns [] 156s 10 from [] 156s preserves the original 156s returns [] 156s 10 from ["A"] 156s preserves the original 156s returns [] 156s 0 from ["A", "B", "C"] 156s preserves the original 156s returns ["A", "B", "C"] 156s 1 from ["A", "B", "C"] 156s preserves the original 156s returns ["B", "C"] 156s 2 from ["A", "B", "C"] 156s preserves the original 156s returns ["C"] 156s 3 from ["A", "B", "C"] 156s preserves the original 156s returns [] 156s when argument is zero 156s returns self 156s when the set has a custom order 156s maintains the custom order 156s keeps the comparator even when set is cleared 156s when called on a subclass 156s should return an instance of the subclass 156s 156s Hamster::SortedSet 156s #drop_while 156s on [] 156s with a block 156s preserves the original 156s returns [] 156s without a block 156s returns an Enumerator 156s on ["A"] 156s with a block 156s preserves the original 156s returns [] 156s without a block 156s returns an Enumerator 156s on ["A", "B", "C"] 156s with a block 156s preserves the original 156s returns ["C"] 156s without a block 156s returns an Enumerator 156s on ["A", "B", "C", "D", "E", "F", "G"] 156s with a block 156s preserves the original 156s returns ["C", "D", "E", "F", "G"] 156s without a block 156s returns an Enumerator 156s 156s Hamster::SortedSet 156s #each 156s with no block 156s returns an Enumerator 156s with a block 156s returns self 156s iterates over the items in order 156s 156s Hamster::SortedSet 156s #empty? 156s on [] 156s returns true 156s on ["A"] 156s returns false 156s on ["A", "B", "C"] 156s returns false 156s .empty 156s returns the canonical empty set 156s from a subclass 156s returns an empty instance of the subclass 156s 156s Hamster::SortedSet 156s #eql? 156s when comparing to a standard set 156s returns false 156s when comparing to a arbitrary object 156s returns false 156s when comparing to a Hamster::Set 156s returns false 156s when comparing with a subclass of Hamster::SortedSet 156s returns false 156s with an empty set for each comparison 156s returns true 156s with an empty set and a set with nil 156s returns false 156s with a single item array and empty array 156s returns false 156s with matching single item array 156s returns true 156s with mismatching single item array 156s returns false 156s with a multi-item array and single item array 156s returns false 156s with matching multi-item array 156s returns true 156s with a mismatching multi-item array 156s returns true 156s with the same values, but a different sort order 156s returns false 156s 156s Hamster::SortedSet 156s #exclusion 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns [] 156s for ["A", "B", "C"] and ["B"] 156s returns ["A", "C"] 156s for ["A", "B", "C"] and ["B", "C", "D"] 156s returns ["A", "D"] 156s for ["A", "B", "C"] and ["D", "E", "F"] 156s returns ["A", "B", "C", "D", "E", "F"] 156s #^ 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns [] 156s for ["A", "B", "C"] and ["B"] 156s returns ["A", "C"] 156s for ["A", "B", "C"] and ["B", "C", "D"] 156s returns ["A", "D"] 156s for ["A", "B", "C"] and ["D", "E", "F"] 156s returns ["A", "B", "C", "D", "E", "F"] 156s 156s Hamster::SortedSet 156s #fetch 156s gives precedence to default block over default argument if passed both 156s with no default provided 156s when the index exists 156s returns the value at the index 156s when the key does not exist 156s raises an IndexError 156s with a default value 156s when the index exists 156s returns the value at the index 156s when the index does not exist 156s returns the default value 156s with a default block 156s when the index exists 156s returns the value at the index 156s when the index does not exist 156s invokes the block with the missing index as parameter 156s 156s Hamster::SortedSet 156s #find_index 156s looking for "A" in [] without block 156s returns nil 156s looking for "A" in [] with block 156s returns nil 156s looking for nil in [] with block 156s returns nil 156s looking for "A" in ["A"] without block 156s returns 0 156s looking for "A" in ["A"] with block 156s returns 0 156s looking for "B" in ["A"] without block 156s returns nil 156s looking for "B" in ["A"] with block 156s returns nil 156s looking for nil in ["A"] with block 156s returns nil 156s looking for "A" in ["A", "B", "C"] without block 156s returns 0 156s looking for "A" in ["A", "B", "C"] with block 156s returns 0 156s looking for "B" in ["A", "B", "C"] without block 156s returns 1 156s looking for "B" in ["A", "B", "C"] with block 156s returns 1 156s looking for "C" in ["A", "B", "C"] without block 156s returns 2 156s looking for "C" in ["A", "B", "C"] with block 156s returns 2 156s looking for "D" in ["A", "B", "C"] without block 156s returns nil 156s looking for "D" in ["A", "B", "C"] with block 156s returns nil 156s looking for 1 in 0..1 without block 156s returns 1 156s looking for 1 in 0..1 with block 156s returns 1 156s looking for 5 in 0..10 without block 156s returns 5 156s looking for 5 in 0..10 with block 156s returns 5 156s looking for 10 in 0..10 without block 156s returns 10 156s looking for 10 in 0..10 with block 156s returns 10 156s looking for 2 in [2] without block 156s returns 0 156s looking for 2 in [2] with block 156s returns 0 156s looking for 2.0 in [2] without block 156s returns 0 156s looking for 2.0 in [2] with block 156s returns 0 156s looking for 2.0 in [2.0] without block 156s returns 0 156s looking for 2.0 in [2.0] with block 156s returns 0 156s looking for 2 in [2.0] without block 156s returns 0 156s looking for 2 in [2.0] with block 156s returns 0 156s #index 156s looking for "A" in [] without block 156s returns nil 156s looking for "A" in [] with block 156s returns nil 156s looking for nil in [] with block 156s returns nil 156s looking for "A" in ["A"] without block 156s returns 0 156s looking for "A" in ["A"] with block 156s returns 0 156s looking for "B" in ["A"] without block 156s returns nil 156s looking for "B" in ["A"] with block 156s returns nil 156s looking for nil in ["A"] with block 156s returns nil 156s looking for "A" in ["A", "B", "C"] without block 156s returns 0 156s looking for "A" in ["A", "B", "C"] with block 156s returns 0 156s looking for "B" in ["A", "B", "C"] without block 156s returns 1 156s looking for "B" in ["A", "B", "C"] with block 156s returns 1 156s looking for "C" in ["A", "B", "C"] without block 156s returns 2 156s looking for "C" in ["A", "B", "C"] with block 156s returns 2 156s looking for "D" in ["A", "B", "C"] without block 156s returns nil 156s looking for "D" in ["A", "B", "C"] with block 156s returns nil 156s looking for 1 in 0..1 without block 156s returns 1 156s looking for 1 in 0..1 with block 156s returns 1 156s looking for 5 in 0..10 without block 156s returns 5 156s looking for 5 in 0..10 with block 156s returns 5 156s looking for 10 in 0..10 without block 156s returns 10 156s looking for 10 in 0..10 with block 156s returns 10 156s looking for 2 in [2] without block 156s returns 0 156s looking for 2 in [2] with block 156s returns 0 156s looking for 2.0 in [2] without block 156s returns 0 156s looking for 2.0 in [2] with block 156s returns 0 156s looking for 2.0 in [2.0] without block 156s returns 0 156s looking for 2.0 in [2.0] with block 156s returns 0 156s looking for 2 in [2.0] without block 156s returns 0 156s looking for 2 in [2.0] with block 156s returns 0 156s 156s Hamster::SortedSet 156s #first 156s on [] 156s returns nil 156s on ["A"] 156s returns "A" 156s on ["A", "B", "C"] 156s returns "A" 156s on ["Z", "Y", "X"] 156s returns "X" 156s 156s Hamster::SortedSet 156s #from 156s when called without a block 156s returns a sorted set of all items equal to or greater than the argument 156s when called with a block 156s yields all the items equal to or greater than than the argument 156s on an empty set 156s returns an empty set 156s with an argument higher than all the values in the set 156s returns an empty set 156s 156s Hamster::SortedSet 156s #group_by 156s with a block 156s on [] 156s preserves the original 156s returns [] 156s on [1] 156s preserves the original 156s returns [{true=>Hamster::SortedSet[1]}] 156s on [1, 2, 3, 4] 156s preserves the original 156s returns [{true=>Hamster::SortedSet[1, 3], false=>Hamster::SortedSet[2, 4]}] 156s without a block 156s on [] 156s preserves the original 156s returns [] 156s on [1] 156s preserves the original 156s returns [{1=>Hamster::SortedSet[1]}] 156s on [1, 2, 3, 4] 156s preserves the original 156s returns [{1=>Hamster::SortedSet[1], 2=>Hamster::SortedSet[2], 3=>Hamster::SortedSet[3], 4=>Hamster::SortedSet[4]}] 156s from a subclass 156s returns an Hash whose values are instances of the subclass 156s #group 156s with a block 156s on [] 156s preserves the original 156s returns [] 156s on [1] 156s preserves the original 156s returns [{true=>Hamster::SortedSet[1]}] 156s on [1, 2, 3, 4] 156s preserves the original 156s returns [{true=>Hamster::SortedSet[1, 3], false=>Hamster::SortedSet[2, 4]}] 156s without a block 156s on [] 156s preserves the original 156s returns [] 156s on [1] 156s preserves the original 156s returns [{1=>Hamster::SortedSet[1]}] 156s on [1, 2, 3, 4] 156s preserves the original 156s returns [{1=>Hamster::SortedSet[1], 2=>Hamster::SortedSet[2], 3=>Hamster::SortedSet[3], 4=>Hamster::SortedSet[4]}] 156s from a subclass 156s returns an Hash whose values are instances of the subclass 156s #classify 156s with a block 156s on [] 156s preserves the original 156s returns [] 156s on [1] 156s preserves the original 156s returns [{true=>Hamster::SortedSet[1]}] 156s on [1, 2, 3, 4] 156s preserves the original 156s returns [{true=>Hamster::SortedSet[1, 3], false=>Hamster::SortedSet[2, 4]}] 156s without a block 156s on [] 156s preserves the original 156s returns [] 156s on [1] 156s preserves the original 156s returns [{1=>Hamster::SortedSet[1]}] 156s on [1, 2, 3, 4] 156s preserves the original 156s returns [{1=>Hamster::SortedSet[1], 2=>Hamster::SortedSet[2], 3=>Hamster::SortedSet[3], 4=>Hamster::SortedSet[4]}] 156s from a subclass 156s returns an Hash whose values are instances of the subclass 156s 156s Hamster::SortedSet 156s #include? 156s returns true for an existing value (1) 156s returns true for an existing value (2) 156s returns true for an existing value (3) 156s returns true for an existing value (4.0) 156s returns false for a non-existing value 156s uses #<=> for equality 156s #member? 156s returns true for an existing value (1) 156s returns true for an existing value (2) 156s returns true for an existing value (3) 156s returns true for an existing value (4.0) 156s returns false for a non-existing value 156s uses #<=> for equality 156s 156s Hamster::SortedSet 156s #inspect 156s on [] 156s returns "Hamster::SortedSet[]" 156s returns a string which can be eval'd to get an equivalent set 156s on ["A"] 156s returns "Hamster::SortedSet[\"A\"]" 156s returns a string which can be eval'd to get an equivalent set 156s on ["C", "B", "A"] 156s returns "Hamster::SortedSet[\"A\", \"B\", \"C\"]" 156s returns a string which can be eval'd to get an equivalent set 156s from a subclass 156s returns a programmer-readable representation of the set contents 156s returns a string which can be eval'd to get an equivalent set 156s 156s Hamster::SortedSet 156s #intersect? 156s for [] and [] 156s returns false 156s for ["A"] and [] 156s returns false 156s for [] and ["A"] 156s returns false 156s for ["A"] and ["A"] 156s returns true 156s for ["A", "B", "C"] and ["B"] 156s returns true 156s for ["B"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["D", "E"] 156s returns false 156s for ["F", "G", "H", "I"] and ["A", "B", "C"] 156s returns false 156s for ["A", "B", "C"] and ["A", "B", "C"] 156s returns true 156s for ["A", "B", "C"] and ["A", "B", "C", "D"] 156s returns true 156s for ["D", "E", "F", "G"] and ["A", "B", "C"] 156s returns false 156s 156s Hamster::SortedSet 156s #intersection 156s for [] and [] 156s returns [] 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns [] 156s for [] and ["A"] 156s returns [] 156s for ["A"] and ["A"] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns ["A"] 156s for ["A", "B", "C"] and ["B"] 156s returns ["B"] 156s for ["B"] and ["A", "B", "C"] 156s returns ["B"] 156s for ["A", "B", "C"] and ["A", "C"] 156s returns ["A", "C"] 156s for ["A", "C"] and ["A", "B", "C"] 156s returns ["A", "C"] 156s for ["A", "M", "T", "X"] and ["B", "C", "D", "E", "F", "G", "H", "I", "M", "P", "Q", "T", "U"] 156s returns ["M", "T"] 156s for ["B", "C", "D", "E", "F", "G", "H", "I", "M", "P", "Q", "T", "U"] and ["A", "M", "T", "X"] 156s returns ["M", "T"] 156s #& 156s for [] and [] 156s returns [] 156s for [] and [] 156s returns [] 156s for ["A"] and [] 156s returns [] 156s for [] and ["A"] 156s returns [] 156s for ["A"] and ["A"] 156s returns ["A"] 156s for ["A"] and ["A"] 156s returns ["A"] 156s for ["A", "B", "C"] and ["B"] 156s returns ["B"] 156s for ["B"] and ["A", "B", "C"] 156s returns ["B"] 156s for ["A", "B", "C"] and ["A", "C"] 156s returns ["A", "C"] 156s for ["A", "C"] and ["A", "B", "C"] 156s returns ["A", "C"] 156s for ["A", "M", "T", "X"] and ["B", "C", "D", "E", "F", "G", "H", "I", "M", "P", "Q", "T", "U"] 156s returns ["M", "T"] 156s for ["B", "C", "D", "E", "F", "G", "H", "I", "M", "P", "Q", "T", "U"] and ["A", "M", "T", "X"] 156s returns ["M", "T"] 156s 156s Hamster::SortedSet 156s #last 156s with an empty set 156s returns the last item 156s with a single item set 156s returns the last item 156s with a multi-item set 156s returns the last item 156s 156s Hamster::SortedSet 156s #map 156s when empty 156s returns self 156s when not empty 156s with a block 156s preserves the original values 156s returns a new set with the mapped values 156s with no block 156s returns an Enumerator 156s on a set ordered by a comparator 156s returns a new set with the mapped values 156s #collect 156s when empty 156s returns self 156s when not empty 156s with a block 156s preserves the original values 156s returns a new set with the mapped values 156s with no block 156s returns an Enumerator 156s on a set ordered by a comparator 156s returns a new set with the mapped values 156s 156s Hamster::SortedSet 156s #marshal_dump/#marshal_load 156s can survive dumping and loading into a new process 157s is still possible to find items by index after loading 157s raises a TypeError if set has a custom sort order 157s 157s Hamster::SortedSet 157s #max 157s with a block 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "Ichi" 157s without a block 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "San" 157s 157s Hamster::SortedSet 157s #min 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "Ichi" 157s on [1, 2, 3, 4, 5] 157s returns 1 157s on [0, -0.0, 2.2, -4, -4.2] 157s returns -4.2 157s 157s Hamster::SortedSet 157s .new 157s accepts a single enumerable argument and creates a new sorted set 157s also works with a Range 157s is amenable to overriding of #initialize 157s accepts a block with arity 1 157s accepts a block with arity 2 157s can use a block produced by Symbol#to_proc 157s from a subclass 157s returns a frozen instance of the subclass 157s .[] 157s accepts a variable number of items and creates a new sorted set 157s 157s Hamster::SortedSet 157s #reverse_each 157s with no block 157s returns an Enumerator 157s with a block 157s returns self 157s iterates over the items in order 157s 157s Hamster::SortedSet 157s #sample 157s returns a randomly chosen item 157s 157s Hamster::SortedSet 157s #select 157s when everything matches 157s preserves the original 157s returns self 157s when only some things match 157s with a block 157s preserves the original 157s returns a set with the matching values 157s with no block 157s returns an Enumerator 157s when nothing matches 157s preserves the original 157s returns the canonical empty set 157s from a subclass 157s returns an instance of the same class 157s #find_all 157s when everything matches 157s preserves the original 157s returns self 157s when only some things match 157s with a block 157s preserves the original 157s returns a set with the matching values 157s with no block 157s returns an Enumerator 157s when nothing matches 157s preserves the original 157s returns the canonical empty set 157s from a subclass 157s returns an instance of the same class 157s 157s Hamster::SortedSet 157s #size 157s returns 0 for [] 157s returns 1 for ["A"] 157s returns 3 for ["A", "B", "C"] 157s #length 157s returns 0 for [] 157s returns 1 for ["A"] 157s returns 3 for ["A", "B", "C"] 157s 157s Hamster::SortedSet 157s #slice 157s when passed a positive integral index 157s returns the element at that index 157s leaves the original unchanged 157s when passed a negative integral index 157s returns the element which is number (index.abs) counting from the end of the sorted_set 157s when passed a positive integral index and count 157s returns 'count' elements starting from 'index' 157s leaves the original unchanged 157s when passed a negative integral index and count 157s returns 'count' elements, starting from index which is number 'index.abs' counting from the end of the array 157s when passed a Range 157s returns the elements whose indexes are within the given Range 157s leaves the original unchanged 157s when passed an empty Range 157s does not lose custom sort order 157s when passed a length of zero 157s does not lose custom sort order 157s when passed a subclass of Range 157s works the same as with a Range 157s on a subclass of SortedSet 157s with index and count or a range, returns an instance of the subclass 157s #[] 157s when passed a positive integral index 157s returns the element at that index 157s leaves the original unchanged 157s when passed a negative integral index 157s returns the element which is number (index.abs) counting from the end of the sorted_set 157s when passed a positive integral index and count 157s returns 'count' elements starting from 'index' 157s leaves the original unchanged 157s when passed a negative integral index and count 157s returns 'count' elements, starting from index which is number 'index.abs' counting from the end of the array 157s when passed a Range 157s returns the elements whose indexes are within the given Range 157s leaves the original unchanged 157s when passed an empty Range 157s does not lose custom sort order 157s when passed a length of zero 157s does not lose custom sort order 157s when passed a subclass of Range 157s works the same as with a Range 157s on a subclass of SortedSet 157s with index and count or a range, returns an instance of the subclass 157s 157s Hamster::SortedSet 157s #sort 157s on [] 157s with a block 157s preserves the original 157s returns [] 157s without a block 157s preserves the original 157s returns [] 157s on ["A"] 157s with a block 157s preserves the original 157s returns ["A"] 157s without a block 157s preserves the original 157s returns ["A"] 157s on ["Ichi", "Ni", "San"] 157s with a block 157s preserves the original 157s returns ["Ni", "San", "Ichi"] 157s without a block 157s preserves the original 157s returns ["Ichi", "Ni", "San"] 157s #sort_by 157s on [] 157s with a block 157s preserves the original 157s returns [] 157s without a block 157s preserves the original 157s returns [] 157s on ["A"] 157s with a block 157s preserves the original 157s returns ["A"] 157s without a block 157s preserves the original 157s returns ["A"] 157s on ["Ichi", "Ni", "San"] 157s with a block 157s preserves the original 157s returns ["Ni", "San", "Ichi"] 157s without a block 157s preserves the original 157s returns ["Ichi", "Ni", "San"] 157s 157s Hamster::SortedSet 157s #subset? 157s for [] and [] 157s returns true 157s for ["A"] and [] 157s returns false 157s for [] and ["A"] 157s returns true 157s for ["A"] and ["A"] 157s returns true 157s for ["A", "B", "C"] and ["B"] 157s returns false 157s for ["B"] and ["A", "B", "C"] 157s returns true 157s for ["A", "B", "C"] and ["A", "C"] 157s returns false 157s for ["A", "C"] and ["A", "B", "C"] 157s returns true 157s for ["A", "B", "C"] and ["A", "B", "C"] 157s returns true 157s for ["A", "B", "C"] and ["A", "B", "C", "D"] 157s returns true 157s for ["A", "B", "C", "D"] and ["A", "B", "C"] 157s returns false 157s #proper_subset? 157s for [] and [] 157s returns false 157s for ["A"] and [] 157s returns false 157s for [] and ["A"] 157s returns true 157s for ["A"] and ["A"] 157s returns false 157s for ["A", "B", "C"] and ["B"] 157s returns false 157s for ["B"] and ["A", "B", "C"] 157s returns true 157s for ["A", "B", "C"] and ["A", "C"] 157s returns false 157s for ["A", "C"] and ["A", "B", "C"] 157s returns true 157s for ["A", "B", "C"] and ["A", "B", "C"] 157s returns false 157s for ["A", "B", "C"] and ["A", "B", "C", "D"] 157s returns true 157s for ["A", "B", "C", "D"] and ["A", "B", "C"] 157s returns false 157s 157s Hamster::SortedSet 157s #superset? 157s for [] and [] 157s returns true 157s for ["A"] and [] 157s returns true 157s for [] and ["A"] 157s returns false 157s for ["A"] and ["A"] 157s returns true 157s for ["A", "B", "C"] and ["B"] 157s returns true 157s for ["B"] and ["A", "B", "C"] 157s returns false 157s for ["A", "B", "C"] and ["A", "C"] 157s returns true 157s for ["A", "C"] and ["A", "B", "C"] 157s returns false 157s for ["A", "B", "C"] and ["A", "B", "C"] 157s returns true 157s for ["A", "B", "C"] and ["A", "B", "C", "D"] 157s returns false 157s for ["A", "B", "C", "D"] and ["A", "B", "C"] 157s returns true 157s #proper_superset? 157s for [] and [] 157s returns false 157s for ["A"] and [] 157s returns true 157s for [] and ["A"] 157s returns false 157s for ["A"] and ["A"] 157s returns false 157s for ["A", "B", "C"] and ["B"] 157s returns true 157s for ["B"] and ["A", "B", "C"] 157s returns false 157s for ["A", "B", "C"] and ["A", "C"] 157s returns true 157s for ["A", "C"] and ["A", "B", "C"] 157s returns false 157s for ["A", "B", "C"] and ["A", "B", "C"] 157s returns false 157s for ["A", "B", "C"] and ["A", "B", "C", "D"] 157s returns false 157s for ["A", "B", "C", "D"] and ["A", "B", "C"] 157s returns true 157s 157s Hamster::SortedSet 157s #take 157s 10 from [] 157s preserves the original 157s returns [] 157s 10 from ["A"] 157s preserves the original 157s returns ["A"] 157s 0 from ["A", "B", "C"] 157s preserves the original 157s returns [] 157s 2 from ["A", "B", "C"] 157s preserves the original 157s returns ["A", "B"] 157s when argument is at least size of receiver 157s returns self 157s when the set has a custom order 157s maintains the custom order 157s keeps the comparator even when set is cleared 157s when called on a subclass 157s should return an instance of the subclass 157s 157s Hamster::SortedSet 157s #take_while 157s on [] 157s with a block 157s returns [] 157s preserves the original 157s without a block 157s returns an Enumerator 157s on ["A"] 157s with a block 157s returns ["A"] 157s preserves the original 157s without a block 157s returns an Enumerator 157s on ["A", "B", "C"] 157s with a block 157s returns ["A", "B"] 157s preserves the original 157s without a block 157s returns an Enumerator 157s 157s Hamster::SortedSet 157s #to_set 157s on [] 157s returns a set with the same values 157s on ["A"] 157s returns a set with the same values 157s on ["A", "B", "C"] 157s returns a set with the same values 157s 157s Hamster::SortedSet 157s #union 157s for [] and [] 157s returns [] 157s for [] and [] 157s returns [] 157s for ["A"] and [] 157s returns ["A"] 157s for [] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A", "B", "C"] and [] 157s returns ["A", "B", "C"] 157s for [] and ["A", "B", "C"] 157s returns ["A", "B", "C"] 157s for ["A", "C", "E", "G", "X"] and ["B", "C", "D", "E", "H", "M"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s for ["B", "C", "D", "E", "H", "M"] and ["A", "C", "E", "G", "X"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s #| 157s for [] and [] 157s returns [] 157s for [] and [] 157s returns [] 157s for ["A"] and [] 157s returns ["A"] 157s for [] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A", "B", "C"] and [] 157s returns ["A", "B", "C"] 157s for [] and ["A", "B", "C"] 157s returns ["A", "B", "C"] 157s for ["A", "C", "E", "G", "X"] and ["B", "C", "D", "E", "H", "M"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s for ["B", "C", "D", "E", "H", "M"] and ["A", "C", "E", "G", "X"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s #+ 157s for [] and [] 157s returns [] 157s for [] and [] 157s returns [] 157s for ["A"] and [] 157s returns ["A"] 157s for [] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A", "B", "C"] and [] 157s returns ["A", "B", "C"] 157s for [] and ["A", "B", "C"] 157s returns ["A", "B", "C"] 157s for ["A", "C", "E", "G", "X"] and ["B", "C", "D", "E", "H", "M"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s for ["B", "C", "D", "E", "H", "M"] and ["A", "C", "E", "G", "X"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s #merge 157s for [] and [] 157s returns [] 157s for [] and [] 157s returns [] 157s for ["A"] and [] 157s returns ["A"] 157s for [] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A"] and ["A"] 157s returns ["A"] 157s for ["A", "B", "C"] and [] 157s returns ["A", "B", "C"] 157s for [] and ["A", "B", "C"] 157s returns ["A", "B", "C"] 157s for ["A", "C", "E", "G", "X"] and ["B", "C", "D", "E", "H", "M"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s for ["B", "C", "D", "E", "H", "M"] and ["A", "C", "E", "G", "X"] 157s returns ["A", "B", "C", "D", "E", "G", "H", "M", "X"] 157s 157s Hamster::SortedSet 157s #up_to 157s when called without a block 157s returns a sorted set of all items equal to or less than the argument 157s when called with a block 157s yields all the items equal to or less than than the argument 157s on an empty set 157s returns an empty set 157s with an argument less than all the values in the set 157s returns an empty set 157s 157s Hamster::SortedSet 157s #values_at 157s accepts any number of indices, and returns a sorted_set of items at those indices 157s when passed invalid indices 157s filters them out 157s when passed no arguments 157s returns an empty sorted_set 157s from a subclass 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s #add 157s with a empty vector adding a single item 157s preserves the original 157s adds the item to the vector 157s with a single-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a single-item vector adding a duplicate item 157s preserves the original 157s adds the item to the vector 157s with a 31-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 32-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 33-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1023-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1024-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1025-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s from a subclass 157s returns an instance of the subclass 157s #<< 157s with a empty vector adding a single item 157s preserves the original 157s adds the item to the vector 157s with a single-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a single-item vector adding a duplicate item 157s preserves the original 157s adds the item to the vector 157s with a 31-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 32-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 33-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1023-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1024-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1025-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s from a subclass 157s returns an instance of the subclass 157s #push 157s with a empty vector adding a single item 157s preserves the original 157s adds the item to the vector 157s with a single-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a single-item vector adding a duplicate item 157s preserves the original 157s adds the item to the vector 157s with a 31-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 32-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 33-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1023-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1024-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s with a 1025-item vector adding a different item 157s preserves the original 157s adds the item to the vector 157s from a subclass 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s #any? 157s when created with no values 157s with a block 157s returns false 157s with a block 157s returns false 157s when created with values 157s with a block that returns true 157s returns true 157s with a block that doesn't return true 157s returns false 157s without a block 157s with some values that are truthy 157s returns true 157s with all values that are falsey 157s returns false 157s 157s Hamster::Vector 157s #assoc 157s searches for a 2-element array with a given 1st item 157s returns nil if a matching 1st item is not found 157s uses #== to compare 1st items with provided object 157s skips elements which are not indexable 157s #rassoc 157s searches for a 2-element array with a given 2nd item 157s returns nil if a matching 2nd item is not found 157s uses #== to compare 2nd items with provided object 157s skips elements which are not indexable 157s 157s Hamster::Vector 157s #bsearch 157s with a block which returns false for elements below desired position, and true for those at/above 157s returns the first element for which the predicate is true 157s if the block always returns false 157s returns nil 157s if the block always returns true 157s returns the first element 157s with a block which returns a negative number for elements below desired position, zero for the right element, and positive for those above 157s returns the element for which the block returns zero 157s if the block always returns positive 157s returns nil 157s if the block always returns negative 157s returns nil 157s if the block returns sometimes positive, sometimes negative, but never zero 157s returns nil 157s if not passed a block 157s returns an Enumerator 157s on an empty vector 157s returns nil 157s 157s Hamster::Vector 157s #clear 157s on [] 157s preserves the original 157s returns an empty vector 157s from a subclass 157s returns an instance of the subclass 157s on ["A"] 157s preserves the original 157s returns an empty vector 157s from a subclass 157s returns an instance of the subclass 157s on ["A", "B", "C"] 157s preserves the original 157s returns an empty vector 157s from a subclass 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s #combination 157s works on many combinations of input 157s leaves the original unmodified 157s with a block 157s returns self 157s with no block 157s returns an Enumerator 157s when passed an argument which is out of bounds 157s yields nothing and returns self 157s when passed an argument zero 157s yields an empty array 157s when passed an argument equal to the vector's length 157s yields self as an array 157s when passed an argument 1 157s yields each item in the vector, as single-item vectors 157s when passed another integral argument 157s yields all combinations of the given length 157s on an empty vector 157s works the same 157s 157s Hamster::Vector 157s #compact 157s returns a new Vector with all nils removed 157s doesn't remove false 157s on an empty vector 157s returns self 157s from a subclass 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s #<=> 157s with [] and [1] 157s returns -1 157s with [1] and [] 157s returns 1 157s with [] and [] 157s returns 0 157s with [1] and [2] 157s returns -1 157s with [2] and [1] 157s returns 1 157s with [1] and [1] 157s returns 0 157s with [1] and [1, 2] 157s returns -1 157s with [1, 2] and [1] 157s returns 1 157s with [1] and [1] 157s returns 0 157s with [2, 3, 4] and [3, 4, 5] 157s returns -1 157s with [3, 4, 5] and [2, 3, 4] 157s returns 1 157s with [2, 3, 4] and [2, 3, 4] 157s returns 0 157s with [[0]] and [[1]] 157s returns -1 157s with [[1]] and [[0]] 157s returns 1 157s with [[0]] and [[0]] 157s returns 0 157s 157s Hamster::Vector 157s #+ 157s preserves the original 157s appends the elements in the other enumerable 157s on a 1-item vector 157s works the same 157s on a 31-item vector 157s works the same 157s on a 32-item vector 157s works the same 157s on a 33-item vector 157s works the same 157s on a 1023-item vector 157s works the same 157s on a 1024-item vector 157s works the same 157s on a 1025-item vector 157s works the same 157s #concat 157s preserves the original 157s appends the elements in the other enumerable 157s on a 1-item vector 157s works the same 157s on a 31-item vector 157s works the same 157s on a 32-item vector 157s works the same 157s on a 33-item vector 157s works the same 157s on a 1023-item vector 157s works the same 157s on a 1024-item vector 157s works the same 157s on a 1025-item vector 157s works the same 157s 157s Hamster::Vector 157s on [] 157s returns self 157s on ["A"] 157s returns self 157s on ["A", "B", "C"] 157s returns self 157s on 1..32 157s returns self 157s on [] 157s returns self 157s on ["A"] 157s returns self 157s on ["A", "B", "C"] 157s returns self 157s on 1..32 157s returns self 157s 157s Hamster::Vector 157s #count 157s returns the number of elements 157s returns the number of elements that equal the argument 157s returns the number of element for which the block evaluates to true 157s 157s Hamster::Vector 157s #delete_at 157s removes the element at the specified index 157s makes no modification if the index is out of range 157s works when deleting last item at boundary where vector trie needs to get shallower 157s works on an empty vector 157s works on a vector with 1 item 157s works on a vector with 32 items 157s has the right size and contents after many deletions 157s 157s Hamster::Vector 157s #delete 157s removes elements that are #== to the argument 157s on an empty vector 157s returns self 157s on a subclass of Vector 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s #dig 157s returns value at the index with one argument 157s returns value at index in nested arrays 157s returns nil when indexing deeper than possible 157s returns nil if you index past the end of an array 157s raises a type error when indexing with a key arrays don't understand 157s 157s Hamster::Vector 157s #drop 157s raises an ArgumentError if number of elements specified is negative 157s 10 from [] 157s preserves the original 157s returns [] 157s 10 from ["A"] 157s preserves the original 157s returns [] 157s 1 from ["A"] 157s preserves the original 157s returns [] 157s 0 from ["A"] 157s preserves the original 157s returns ["A"] 157s 0 from ["A", "B", "C"] 157s preserves the original 157s returns ["A", "B", "C"] 157s 2 from ["A", "B", "C"] 157s preserves the original 157s returns ["C"] 157s 3 from 1..32 157s preserves the original 157s returns 4..32 157s 32 from 1..33 157s preserves the original 157s returns [33] 157s when number of elements specified is zero 157s returns self 157s 157s Hamster::Vector 157s #drop_while 157s returns an empty vector if block is always true 157s stops dropping items if block returns nil 157s stops dropping items if block returns false 157s on [] 157s with a block 157s preserves the original 157s returns [] 157s without a block 157s returns an Enumerator 157s on ["A"] 157s with a block 157s preserves the original 157s returns [] 157s without a block 157s returns an Enumerator 157s on ["A", "B", "C"] 157s with a block 157s preserves the original 157s returns ["C"] 157s without a block 157s returns an Enumerator 157s on an empty vector 157s returns an empty vector 157s 157s Hamster::Vector 157s #each_index 157s with a block 157s yields all the valid indices into the vector 157s returns self 157s without a block 157s returns an Enumerator 157s on an empty vector 157s doesn't yield anything 157s on a 1-item vector 157s yields all valid indices 157s on a 2-item vector 157s yields all valid indices 157s on a 10-item vector 157s yields all valid indices 157s on a 31-item vector 157s yields all valid indices 157s on a 32-item vector 157s yields all valid indices 157s on a 33-item vector 157s yields all valid indices 157s on a 1000-item vector 157s yields all valid indices 157s on a 1024-item vector 157s yields all valid indices 157s on a 1025-item vector 157s yields all valid indices 157s 157s Hamster::Vector 157s #each 157s with no block 157s returns an Enumerator 157s on a 31-item vector 157s with a block 157s returns self 157s yields all the items 157s iterates over the items in order 157s on a 32-item vector 157s with a block 157s returns self 157s yields all the items 157s iterates over the items in order 157s on a 33-item vector 157s with a block 157s returns self 157s yields all the items 157s iterates over the items in order 157s on a 1023-item vector 157s with a block 157s returns self 157s yields all the items 157s iterates over the items in order 157s on a 1024-item vector 157s with a block 157s returns self 157s yields all the items 157s iterates over the items in order 157s on a 1025-item vector 157s with a block 157s returns self 157s yields all the items 157s iterates over the items in order 157s on an empty vector 157s doesn't yield anything 157s 157s Hamster::Vector 157s #each_with_index 157s with no block 157s returns an Enumerator 157s on a 1-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 2-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 31-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 32-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 33-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 1023-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 1024-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on a 1025-item vector 157s with a block 157s returns self 157s iterates over the items in order 157s on an empty vector 157s doesn't yield anything 157s 157s Hamster::Vector 157s #empty? 157s on [] 157s returns true 157s on ["A"] 157s returns false 157s on ["A", "B", "C"] 157s returns false 157s .empty 157s returns the canonical empty vector 157s from a subclass 157s returns an empty instance of the subclass 157s calls overridden #initialize when creating empty Hash 157s 157s Hamster::Vector 157s #eql 157s returns false when comparing with an array with the same contents 157s returns false when comparing with an arbitrary object 157s returns false when comparing an empty vector with an empty array 157s returns false when comparing with a subclass of Hamster::Vector 157s #== 157s returns true when comparing with an array with the same contents 157s returns false when comparing with an arbitrary object 157s returns true when comparing an empty vector with an empty array 157s returns true when comparing with a subclass of Hamster::Vector 157s works on larger vectors 157s #eql? 157s returns true 157s for vectors [] and [] 157s for vectors [] and [] 157s returns false 157s for vectors [] and [nil] 157s for vectors [nil] and [] 157s returns false 157s for vectors ["A"] and [] 157s for vectors [] and ["A"] 157s returns true 157s for vectors ["A"] and ["A"] 157s for vectors ["A"] and ["A"] 157s returns false 157s for vectors ["A"] and ["B"] 157s for vectors ["B"] and ["A"] 157s returns false 157s for vectors ["A", "B"] and ["A"] 157s for vectors ["A"] and ["A", "B"] 157s returns true 157s for vectors ["A", "B", "C"] and ["A", "B", "C"] 157s for vectors ["A", "B", "C"] and ["A", "B", "C"] 157s returns false 157s for vectors ["C", "A", "B"] and ["A", "B", "C"] 157s for vectors ["A", "B", "C"] and ["C", "A", "B"] 157s #== 157s returns true 157s for vectors [] and [] 157s for vectors [] and [] 157s returns false 157s for vectors [] and [nil] 157s for vectors [nil] and [] 157s returns false 157s for vectors ["A"] and [] 157s for vectors [] and ["A"] 157s returns true 157s for vectors ["A"] and ["A"] 157s for vectors ["A"] and ["A"] 157s returns false 157s for vectors ["A"] and ["B"] 157s for vectors ["B"] and ["A"] 157s returns false 157s for vectors ["A", "B"] and ["A"] 157s for vectors ["A"] and ["A", "B"] 157s returns true 157s for vectors ["A", "B", "C"] and ["A", "B", "C"] 157s for vectors ["A", "B", "C"] and ["A", "B", "C"] 157s returns false 157s for vectors ["C", "A", "B"] and ["A", "B", "C"] 157s for vectors ["A", "B", "C"] and ["C", "A", "B"] 157s 157s Hamster::Vector 157s #fetch 157s gives precedence to default block over default argument if passed both 157s with no default provided 157s when the index exists 157s returns the value at the index 157s when the key does not exist 157s raises an IndexError 157s with a default value 157s when the index exists 157s returns the value at the index 157s when the index does not exist 157s returns the default value 157s with a default block 157s when the index exists 157s returns the value at the index 157s when the index does not exist 157s invokes the block with the missing index as parameter 157s 157s Hamster::Vector 157s #fill 157s can replace a range of items at the beginning of a vector 157s can replace a range of items in the middle of a vector 157s can replace a range of items at the end of a vector 157s can replace all the items in a vector 157s can fill past the end of the vector 157s behaves like Array#fill, on a variety of inputs 157s with 1 argument 157s replaces all the items in the vector by default 157s with 2 arguments 157s replaces up to the end of the vector by default 157s when index and length are 0 157s leaves the vector unmodified 157s when expanding a vector past boundary where vector trie needs to deepen 157s works the same 157s on a 1000-item vector 157s works the same 157s on a 1023-item vector 157s works the same 157s on a 1024-item vector 157s works the same 157s on a 1025-item vector 157s works the same 157s on a 2000-item vector 157s works the same 157s 157s Hamster::Vector 157s #first 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["A", "B", "C"] 157s returns "A" 157s on 1..32 157s returns 1 157s 157s Hamster::Vector 157s #flat_map 157s with an empty vector 157s returns the flattened values as a Hamster::Vector 157s returns a Hamster::Vector 157s with a block that returns an empty vector 157s returns the flattened values as a Hamster::Vector 157s returns a Hamster::Vector 157s with a vector of one item 157s returns the flattened values as a Hamster::Vector 157s returns a Hamster::Vector 157s with a vector of multiple items 157s returns the flattened values as a Hamster::Vector 157s returns a Hamster::Vector 157s 157s Hamster::Vector 157s #flatten 157s recursively flattens nested vectors into containing vector 157s flattens nested arrays as well 157s leaves the original unmodified 157s with an integral argument 157s only flattens down to the specified depth 157s with an argument of zero 157s returns self 157s on a subclass 157s returns an instance of the subclass 157s on a vector with no nested vectors 157s returns an unchanged vector 157s on a Vector larger than 32 items initialized with Vector.new 157s returns an unchanged vector 157s 157s Hamster::Vector 157s #get 157s when empty 157s always returns nil 157s when not empty 157s with a positive index 157s within the absolute bounds of the vector 157s returns the value at the specified index from the head 157s outside the absolute bounds of the vector 157s returns nil 157s with a negative index 157s within the absolute bounds of the vector 157s returns the value at the specified index from the tail 157s outside the absolute bounds of the vector 157s returns nil 157s on a 1-item vector 157s works correctly, even after various addings and removings 157s on a 10-item vector 157s works correctly, even after various addings and removings 157s on a 31-item vector 157s works correctly, even after various addings and removings 157s on a 32-item vector 157s works correctly, even after various addings and removings 157s on a 33-item vector 157s works correctly, even after various addings and removings 157s on a 1024-item vector 157s works correctly, even after various addings and removings 157s on a 1025-item vector 157s works correctly, even after various addings and removings 157s on a 2000-item vector 157s works correctly, even after various addings and removings 157s #at 157s when empty 157s always returns nil 157s when not empty 157s with a positive index 157s within the absolute bounds of the vector 157s returns the value at the specified index from the head 157s outside the absolute bounds of the vector 157s returns nil 157s with a negative index 157s within the absolute bounds of the vector 157s returns the value at the specified index from the tail 157s outside the absolute bounds of the vector 157s returns nil 157s on a 1-item vector 157s works correctly, even after various addings and removings 157s on a 10-item vector 157s works correctly, even after various addings and removings 157s on a 31-item vector 157s works correctly, even after various addings and removings 157s on a 32-item vector 157s works correctly, even after various addings and removings 157s on a 33-item vector 157s works correctly, even after various addings and removings 157s on a 1024-item vector 157s works correctly, even after various addings and removings 157s on a 1025-item vector 157s works correctly, even after various addings and removings 157s on a 2000-item vector 157s works correctly, even after various addings and removings 157s 157s Hamster::Vector 157s #group_by 157s returns a hash without default proc 157s with a block 157s on [] 157s returns [] 157s on [1] 157s returns [{true=>Hamster::Vector[1]}] 157s on [1, 2, 3, 4] 157s returns [{true=>Hamster::Vector[1, 3], false=>Hamster::Vector[2, 4]}] 157s without a block 157s on [] 157s returns [] 157s on [1] 157s returns [{1=>Hamster::Vector[1]}] 157s on [1, 2, 3, 4] 157s returns [{1=>Hamster::Vector[1], 2=>Hamster::Vector[2], 3=>Hamster::Vector[3], 4=>Hamster::Vector[4]}] 157s on an empty vector 157s returns an empty hash 157s from a subclass 157s returns an Hash whose values are instances of the subclass 157s 157s Hamster::Vector 157s #include? 157s on [] 157s returns false 157s on [] 157s returns false 157s on ["A"] 157s returns true 157s on ["A"] 157s returns false 157s on ["A"] 157s returns false 157s on ["A", "B", nil] 157s returns true 157s on ["A", "B", nil] 157s returns true 157s on ["A", "B", nil] 157s returns true 157s on ["A", "B", nil] 157s returns false 157s on ["A", "B", false] 157s returns true 157s on [2] 157s returns true 157s on [2] 157s returns true 157s on [2.0] 157s returns true 157s on [2.0] 157s returns true 157s #member? 157s on [] 157s returns false 157s on [] 157s returns false 157s on ["A"] 157s returns true 157s on ["A"] 157s returns false 157s on ["A"] 157s returns false 157s on ["A", "B", nil] 157s returns true 157s on ["A", "B", nil] 157s returns true 157s on ["A", "B", nil] 157s returns true 157s on ["A", "B", nil] 157s returns false 157s on ["A", "B", false] 157s returns true 157s on [2] 157s returns true 157s on [2] 157s returns true 157s on [2.0] 157s returns true 157s on [2.0] 157s returns true 157s 157s Hamster::Vector 157s #insert 157s can add items at the beginning of a vector 157s can add items in the middle of a vector 157s can add items at the end of a vector 157s can add items past the end of a vector 157s accepts a negative index, which counts back from the end of the vector 157s raises IndexError if a negative index is too great 157s works when adding an item past boundary when vector trie needs to deepen 157s works when adding to an empty Vector 157s has the right size and contents after many insertions 157s 157s Hamster::Vector 157s #inspect 157s with an empty array 157s returns its contents as a programmer-readable string 157s returns a string which can be eval'd to get back an equivalent vector 157s with a single item array 157s returns its contents as a programmer-readable string 157s returns a string which can be eval'd to get back an equivalent vector 157s with a multi-item array 157s returns its contents as a programmer-readable string 157s returns a string which can be eval'd to get back an equivalent vector 157s from a subclass 157s returns its contents as a programmer-readable string 157s returns a string which can be eval'd to get back an equivalent vector 157s 157s Hamster::Vector 157s #join 157s with a separator 157s on [] 157s preserves the original 157s returns "" 157s on ["A"] 157s preserves the original 157s returns "A" 157s on ["A", "B", "C"] 157s preserves the original 157s returns "A|B|C" 157s without a separator 157s on [] 157s preserves the original 157s returns "" 157s on ["A"] 157s preserves the original 157s returns "A" 157s on ["A", "B", "C"] 157s preserves the original 157s returns "ABC" 157s without a separator (with global default separator set) 157s on ["A", "B", "C"] 157s returns "A**B**C" 157s 157s Hamster::Vector 157s #last 157s with an empty vector 157s returns the last item 157s with a single item vector 157s returns the last item 157s with a multi-item vector 157s returns the last item 157s with a 31-item vector 157s returns the last item 157s with a 32-item vector 157s returns the last item 157s with a 33-item vector 157s returns the last item 157s with a 1023-item vector 157s returns the last item 157s with a 1024-item vector 157s returns the last item 157s with a 1025-item vector 157s returns the last item 157s 157s Hamster::Vector 157s #length 157s with an empty vector 157s returns the values 157s with a single item vector 157s returns the values 157s with a multi-item vector 157s returns the values 157s with a 31-item vector 157s returns the values 157s with a 32-item vector 157s returns the values 157s with a 33-item vector 157s returns the values 157s with a 1023-item vector 157s returns the values 157s with a 1024-item vector 157s returns the values 157s with a 1025-item vector 157s returns the values 157s 157s Hamster::Vector 157s #<< 157s with a empty array adding a single item 157s preserves the original 157s ltlts the item to the vector 157s with a single-item array adding a different item 157s preserves the original 157s ltlts the item to the vector 157s with a single-item array adding a duplicate item 157s preserves the original 157s ltlts the item to the vector 157s with a 31-item vector adding a different item 157s preserves the original 157s ltlts the item to the vector 157s with a 32-item vector adding a different item 157s preserves the original 157s ltlts the item to the vector 157s with a 33-item vector adding a different item 157s preserves the original 157s ltlts the item to the vector 157s with a 1023-item vector adding a different item 157s preserves the original 157s ltlts the item to the vector 157s with a 1024-item vector adding a different item 157s preserves the original 157s ltlts the item to the vector 157s with a 1025-item vector adding a different item 157s preserves the original 157s ltlts the item to the vector 157s from a subclass 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s #map 157s when empty 157s returns self 157s when not empty 157s with a block 157s preserves the original values 157s returns a new vector with the mapped values 157s with no block 157s returns an Enumerator 157s from a subclass 157s returns an instance of the subclass 157s on a large vector 157s works 157s #collect 157s when empty 157s returns self 157s when not empty 157s with a block 157s preserves the original values 157s returns a new vector with the mapped values 157s with no block 157s returns an Enumerator 157s from a subclass 157s returns an instance of the subclass 157s on a large vector 157s works 157s 157s Hamster::Vector 157s #marshal_dump/#marshal_load 157s can survive dumping and loading into a new process 157s is still possible to find items by index after loading 157s 157s Hamster::Vector 157s #max 157s with a block 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "Ichi" 157s without a block 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "San" 157s 157s Hamster::Vector 157s #min 157s with a block 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "Ni" 157s without a block 157s on [] 157s returns nil 157s on ["A"] 157s returns "A" 157s on ["Ichi", "Ni", "San"] 157s returns "Ichi" 157s 157s Hamster::Vector 157s #* 157s raises a TypeError if passed nil 157s raises an ArgumentError if passed no arguments 157s with a String argument 157s acts just like #join 157s with an Integer argument 157s concatenates n copies of the array 157s raises an ArgumentError if integer is negative 157s works on large vectors 157s with a subclass of Vector 157s returns an instance of the subclass 157s 157s Hamster::Vector 157s .new 157s accepts a single enumerable argument and creates a new vector 157s makes a defensive copy of a non-frozen mutable Array passed in 157s is amenable to overriding of #initialize 157s from a subclass 157s returns a frozen instance of the subclass 157s .[] 157s accepts a variable number of items and creates a new vector 157s 157s Hamster::Vector 157s #partition 157s on [] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [1] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [1, 2] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [1, 2, 3] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [1, 2, 3, 4] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [2, 3, 4] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [3, 4] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s on [4] 157s with a block 157s preserves the original 157s returns a frozen array with two items 157s correctly identifies the matches 157s correctly identifies the remainder 157s without a block 157s returns an Enumerator 157s 157s Hamster::Vector 157s #permutation 157s handles duplicate elements correctly 157s leaves the original unmodified 157s behaves like Array#permutation 157s without a block or arguments 157s returns an Enumerator of all permutations 157s without a block, but with integral argument 157s returns an Enumerator of all permutations of given length 157s with a block 157s returns self 157s and no argument 157s yields all permutations 157s and an integral argument 157s yields all permutations of the given length 157s on an empty vector 157s yields the empty permutation 157s with an argument of zero 157s yields the empty permutation 157s with a length greater than the size of the vector 157s yields no permutations 157s 157s Hamster::Vector 157s #pop 157s on [] 157s preserves the original 157s returns [] 157s on ["A"] 157s preserves the original 157s returns [] 157s on ["A", "B", "C"] 157s preserves the original 157s returns ["A", "B"] 157s on 1..32 157s preserves the original 157s returns 1..31 157s on 1..33 157s preserves the original 157s returns 1..32 157s 157s Hamster::Vector 157s #product 157s when passed no arguments 157s multiplies all items in vector 157s when passed one or more vectors 157s when passed a block 157s yields an array for each combination of items from the vectors 157s returns self 157s when not passed a block 157s returns the cartesian product in an array 157s when one of the arguments is empty 157s returns an empty array 157s when the receiver is empty 157s returns an empty array 157s when passed one or more Arrays 157s also calculates the cartesian product correctly 157s 157s Hamster::Vector 157s #put 157s when empty 157s WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /tmp/autopkgtest.RJMQW4/build.IgZ/src/spec/lib/hamster/vector/put_spec.rb:12:in `block (4 levels) in '. 157s raises an error for index -1 157s allows indexes 0 and 1 to be put 157s when not empty 157s with a block 157s and a positive index 157s within the absolute bounds of the vector 157s passes the current value to the block 157s replaces the value with the result of the block 157s supports to_proc methods 157s just past the end of the vector 157s passes nil to the block and adds a new value 157s further outside the bounds of the vector 157s passes nil to the block, fills up missing nils, and adds a new value 157s and a negative index 157s within the absolute bounds of the vector 157s passes the current value to the block 157s replaces the value with the result of the block 157s supports to_proc methods 157s outside the absolute bounds of the vector 157s WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /tmp/autopkgtest.RJMQW4/build.IgZ/src/spec/lib/hamster/vector/put_spec.rb:76:in `block (7 levels) in '. 157s raises an error 157s with a value 157s and a positive index 157s within the absolute bounds of the vector 157s preserves the original 157s puts the new value at the specified index 157s just past the end of the vector 157s adds a new value 157s outside the absolute bounds of the vector 157s fills up with nils 157s with a negative index 157s preserves the original 157s puts the new value at the specified index 157s outside the absolute bounds of the vector 157s WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /tmp/autopkgtest.RJMQW4/build.IgZ/src/spec/lib/hamster/vector/put_spec.rb:126:in `block (6 levels) in '. 157s raises an error 157s from a subclass 157s returns an instance of the subclass 157s on a 10-item vector 157s works correctly 157s on a 31-item vector 157s works correctly 157s on a 32-item vector 157s works correctly 157s on a 33-item vector 157s works correctly 157s on a 1000-item vector 157s works correctly 157s on a 1023-item vector 157s works correctly 157s on a 1024-item vector 157s works correctly 157s on a 1025-item vector 157s works correctly 157s on a 2000-item vector 157s works correctly 157s with an identical value to an existing item 157s on a 1-item vector 157s returns self 157s on a 2-item vector 157s returns self 157s on a 5-item vector 157s returns self 157s on a 31-item vector 157s returns self 157s on a 32-item vector 157s returns self 157s on a 33-item vector 157s returns self 157s on a 100-item vector 157s returns self 157s on a 200-item vector 157s returns self 157s 157s Hamster::Vector 157s #reduce 157s on [] 157s with an initial value of 10 157s and a block 157s returns 10 157s on [1] 157s with an initial value of 10 157s and a block 157s returns 9 157s on [1, 2, 3] 157s with an initial value of 10 157s and a block 157s returns 4 157s on [] 157s with no initial value 157s and a block 157s returns nil 157s on [1] 157s with no initial value 157s and a block 157s returns 1 157s on [1, 2, 3] 157s with no initial value 157s and a block 157s returns -4 157s with no block and a symbol argument 157s uses the symbol as the name of a method to reduce with 157s with no block and a string argument 157s uses the string as the name of a method to reduce with 157s #inject 157s on [] 157s with an initial value of 10 157s and a block 157s returns 10 157s on [1] 157s with an initial value of 10 157s and a block 157s returns 9 157s on [1, 2, 3] 157s with an initial value of 10 157s and a block 157s returns 4 157s on [] 157s with no initial value 157s and a block 157s returns nil 157s on [1] 157s with no initial value 157s and a block 157s returns 1 157s on [1, 2, 3] 157s with no initial value 157s and a block 157s returns -4 157s with no block and a symbol argument 157s uses the symbol as the name of a method to reduce with 157s with no block and a string argument 157s uses the string as the name of a method to reduce with 157s 157s Hamster::Vector 157s #reject 157s works with a variety of inputs 157s on [] 157s with a block 157s returns [] 157s without a block 157s returns an Enumerator 157s on ["A"] 157s with a block 157s returns ["A"] 157s without a block 157s returns an Enumerator 157s on ["A", "B", "C"] 157s with a block 157s returns ["A", "B", "C"] 157s without a block 157s returns an Enumerator 157s on ["A", "b", "C"] 157s with a block 157s returns ["A", "C"] 157s without a block 157s returns an Enumerator 157s on ["a", "b", "c"] 157s with a block 157s returns [] 157s without a block 157s returns an Enumerator 157s #delete_if 157s works with a variety of inputs 157s on [] 157s with a block 157s returns [] 157s without a block 157s returns an Enumerator 157s on ["A"] 157s with a block 157s returns ["A"] 157s without a block 157s returns an Enumerator 157s on ["A", "B", "C"] 157s with a block 157s returns ["A", "B", "C"] 157s without a block 157s returns an Enumerator 157s on ["A", "b", "C"] 157s with a block 157s returns ["A", "C"] 157s without a block 157s returns an Enumerator 157s on ["a", "b", "c"] 157s with a block 157s returns [] 157s without a block 157s returns an Enumerator 157s 157s Hamster::Vector 157s #repeated_combination 157s leaves the original unmodified 157s behaves like Array#repeated_combination 157s with no block 157s returns an Enumerator 157s with a block 157s returns self 157s with a negative argument 157s yields nothing and returns self 157s with a zero argument 157s yields an empty array 157s with a argument of 1 157s yields each item in the vector, as single-item vectors 157s on an empty vector, with an argument greater than zero 157s yields nothing 157s with a positive argument, greater than 1 157s yields all combinations of the given size (where a single element can appear more than once in a row) 157s 157s Hamster::Vector 157s #repeated_permutation 157s handles duplicate elements correctly 157s allows permutations larger than the number of elements 157s leaves the original unmodified 158s behaves like Array#repeated_permutation 158s without a block 158s and without argument 158s returns an Enumerator of all repeated permutations 158s with an integral argument 158s returns an Enumerator of all repeated permutations of the given length 158s with a block 158s returns self 158s on an empty vector 158s yields the empty permutation 158s with an argument of zero 158s yields the empty permutation 158s with no argument 158s yields all repeated permutations 158s with a positive integral argument 158s yields all repeated permutations of the given length 158s 158s Hamster::Vector 158s #reverse_each 158s on a 2-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 31-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 32-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 33-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 1000-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 1024-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 1025-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s on a 2000-item vector 158s with a block (internal iteration) 158s returns self 158s yields all items in the opposite order as #each 158s with no block 158s returns an Enumerator 158s 158s Hamster::Vector 158s #reverse 158s on [] 158s returns [] 158s on [1] 158s returns [1] 158s on [1, 2] 158s returns [2, 1] 158s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32] 158s returns [32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 158s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] 158s returns [33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 158s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100] 158s returns [100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 158s on [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024] 158s returns [1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 158s 158s Hamster::Vector 158s #rindex 158s when passed an object present in the vector 158s returns the last index where the object is present 158s when passed an object not present in the vector 158s returns nil 158s with a block 158s returns the last index of an object which the predicate is true for 158s without an argument OR block 158s returns an Enumerator 158s 158s Hamster::Vector 158s #rotate 158s leaves the original unmodified 158s when passed no argument 158s returns a new vector with the first element moved to the end 158s with an integral argument n 158s returns a new vector with the first (n % size) elements moved to the end 158s with a floating-point argument n 158s coerces the argument to integer using to_int 158s with a non-numeric argument 158s raises a TypeError 158s with an argument of zero 158s returns self 158s with an argument equal to the vector's size 158s returns self 158s on a 31-item vector 158s behaves like Array#rotate 158s on a 32-item vector 158s behaves like Array#rotate 158s on a 33-item vector 158s behaves like Array#rotate 158s on a 1000-item vector 158s behaves like Array#rotate 158s on a 1023-item vector 158s behaves like Array#rotate 158s on a 1024-item vector 158s behaves like Array#rotate 158s on a 1025-item vector 158s behaves like Array#rotate 158s from a subclass 158s returns an instance of the subclass 158s 158s Hamster::Vector 158s #sample 158s returns a randomly chosen item 158s 158s Hamster::Vector 158s #select 158s works with a variety of inputs 158s with a block 158s preserves the original 158s returns a vector with the matching values 158s with no block 158s returns an Enumerator 158s when nothing matches 158s preserves the original 158s returns an empty vector 158s on an empty vector 158s returns self 158s from a subclass 158s returns an instance of the subclass 158s #find_all 158s works with a variety of inputs 158s with a block 158s preserves the original 158s returns a vector with the matching values 158s with no block 158s returns an Enumerator 158s when nothing matches 158s preserves the original 158s returns an empty vector 158s on an empty vector 158s returns self 158s from a subclass 158s returns an instance of the subclass 158s 158s Hamster::Vector 158s #set 158s without block 158s replaces the element 158s with block 158s passes the existing element to the block and replaces the result 158s 158s Hamster::Vector 158s #shift 158s on [] 158s preserves the original 158s returns [] 158s on ["A"] 158s preserves the original 158s returns [] 158s on ["A", "B", "C"] 158s preserves the original 158s returns ["B", "C"] 158s on 1..31 158s preserves the original 158s returns 2..31 158s on 1..32 158s preserves the original 158s returns 2..32 158s on 1..33 158s preserves the original 158s returns 2..33 158s 158s Hamster::Vector 158s #shuffle 158s returns the same values, in a usually different order 158s leaves the original unchanged 158s from a subclass 158s returns an instance of the subclass 158s on a 32-item vector 158s works correctly 158s on a 33-item vector 158s works correctly 158s on a 1023-item vector 158s works correctly 158s on a 1024-item vector 158s works correctly 158s on a 1025-item vector 158s works correctly 158s 158s Hamster::Vector 158s #slice 158s when passed a positive integral index 158s returns the element at that index 158s leaves the original unchanged 158s when passed a negative integral index 158s returns the element which is number (index.abs) counting from the end of the vector 158s when passed a positive integral index and count 158s returns 'count' elements starting from 'index' 158s leaves the original unchanged 158s when passed a negative integral index and count 158s returns 'count' elements, starting from index which is number 'index.abs' counting from the end of the array 158s when passed a Range 158s returns the elements whose indexes are within the given Range 158s leaves the original unchanged 158s when passed a subclass of Range 158s works the same as with a Range 158s on a subclass of Vector 158s with index and count or a range, returns an instance of the subclass 158s #[] 158s when passed a positive integral index 158s returns the element at that index 158s leaves the original unchanged 158s when passed a negative integral index 158s returns the element which is number (index.abs) counting from the end of the vector 158s when passed a positive integral index and count 158s returns 'count' elements starting from 'index' 158s leaves the original unchanged 158s when passed a negative integral index and count 158s returns 'count' elements, starting from index which is number 'index.abs' counting from the end of the array 158s when passed a Range 158s returns the elements whose indexes are within the given Range 158s leaves the original unchanged 158s when passed a subclass of Range 158s works the same as with a Range 158s on a subclass of Vector 158s with index and count or a range, returns an instance of the subclass 158s 158s Hamster::Vector 158s #sort 158s on [] 158s with a block 158s preserves the original 158s returns [] 158s without a block 158s preserves the original 158s returns [] 158s on ["A"] 158s with a block 158s preserves the original 158s returns ["A"] 158s without a block 158s preserves the original 158s returns ["A"] 158s on ["Ichi", "Ni", "San"] 158s with a block 158s preserves the original 158s returns ["Ni", "San", "Ichi"] 158s without a block 158s preserves the original 158s returns ["Ichi", "Ni", "San"] 158s on a 10-item vector 158s behaves like Arraysort 158s on a 31-item vector 158s behaves like Arraysort 158s on a 32-item vector 158s behaves like Arraysort 158s on a 33-item vector 158s behaves like Arraysort 158s on a 1023-item vector 158s behaves like Arraysort 158s on a 1024-item vector 158s behaves like Arraysort 158s on a 1025-item vector 158s behaves like Arraysort 158s #sort_by 158s on [] 158s with a block 158s preserves the original 158s returns [] 158s without a block 158s preserves the original 158s returns [] 158s on ["A"] 158s with a block 158s preserves the original 158s returns ["A"] 158s without a block 158s preserves the original 158s returns ["A"] 158s on ["Ichi", "Ni", "San"] 158s with a block 158s preserves the original 158s returns ["Ni", "San", "Ichi"] 158s without a block 158s preserves the original 158s returns ["Ichi", "Ni", "San"] 158s on a 10-item vector 158s behaves like Arraysort_by 158s on a 31-item vector 158s behaves like Arraysort_by 158s on a 32-item vector 158s behaves like Arraysort_by 158s on a 33-item vector 158s behaves like Arraysort_by 158s on a 1023-item vector 158s behaves like Arraysort_by 158s on a 1024-item vector 158s behaves like Arraysort_by 158s on a 1025-item vector 158s behaves like Arraysort_by 158s 158s Hamster::Vector 158s #sum 158s on [] 158s returns 0 158s on [2] 158s returns 2 158s on [1, 3, 5, 7, 11] 158s returns 27 158s 158s Hamster::Vector 158s #take 158s 10 from [] 158s preserves the original 158s returns [] 158s 10 from ["A"] 158s preserves the original 158s returns ["A"] 158s 0 from ["A", "B", "C"] 158s preserves the original 158s returns [] 158s 2 from ["A", "B", "C"] 158s preserves the original 158s returns ["A", "B"] 158s 1 from 1..32 158s preserves the original 158s returns [1] 158s 32 from 1..33 158s preserves the original 158s returns 1..32 158s 40 from 1..100 158s preserves the original 158s returns 1..40 158s when number of elements specified is identical to size 158s returns self 158s when number of elements specified is bigger than size 158s returns self 158s 158s Hamster::Vector 158s #take_while 158s on [] 158s with a block 158s returns [] 158s preserves the original 158s without a block 158s returns an Enumerator 158s on ["A"] 158s with a block 158s returns ["A"] 158s preserves the original 158s without a block 158s returns an Enumerator 158s on ["A", "B", "C"] 158s with a block 158s returns ["A", "B"] 158s preserves the original 158s without a block 158s returns an Enumerator 158s 158s Hamster::Vector 158s #to_a 158s with an empty vector 158s returns the values 158s with an single item vector 158s returns the values 158s with an multi-item vector 158s returns the values 158s with a 10-item vector 158s returns the values 158s with a 31-item vector 158s returns the values 158s with a 32-item vector 158s returns the values 158s with a 33-item vector 158s returns the values 158s with a 1000-item vector 158s returns the values 158s with a 1023-item vector 158s returns the values 158s with a 1024-item vector 158s returns the values 158s with a 1025-item vector 158s returns the values 158s 158s Hamster::Vector 158s #to_ary 158s converts using block parameters 158s converts using method arguments 158s converts using splat 158s 158s Hamster::Vector 158s #to_list 158s on [] 158s returns a list 158s the returned list 158s has the correct length 158s contains all values 158s on ["A"] 158s returns a list 158s the returned list 158s has the correct length 158s contains all values 158s on ["A", "B", "C"] 158s returns a list 158s the returned list 158s has the correct length 158s contains all values 158s 158s Hamster::Vector 158s #to_set 158s on [] 158s returns a set with the same values 158s on ["A"] 158s returns a set with the same values 158s on ["A", "B", "C"] 158s returns a set with the same values 158s on 1..10 158s returns a set with the same values 158s on 1..32 158s returns a set with the same values 158s on 1..33 158s returns a set with the same values 158s on 1..1000 158s returns a set with the same values 158s 158s Hamster::Vector 158s #transpose 158s takes a vector of vectors and transposes rows and columns 158s raises an IndexError if the vectors are not of the same length 158s also works on Vectors of Arrays 158s on 10-item vectors 158s behaves like Array#transpose 158s on 31-item vectors 158s behaves like Array#transpose 158s on 32-item vectors 158s behaves like Array#transpose 158s on 33-item vectors 158s behaves like Array#transpose 158s on 1000-item vectors 158s behaves like Array#transpose 158s on 1023-item vectors 158s behaves like Array#transpose 158s on 1024-item vectors 158s behaves like Array#transpose 158s on 1025-item vectors 158s behaves like Array#transpose 158s on 2000-item vectors 158s behaves like Array#transpose 158s on a subclass of Vector 158s returns instances of the subclass 158s 158s Hamster::Vector 158s #uniq 158s returns a vector with no duplicates 158s leaves the original unmodified 158s uses #eql? semantics 158s also uses #hash when determining which values are duplicates 158s keeps the first of each group of duplicate values 158s when passed a block 158s uses the return value of the block to determine which items are duplicate 158s on a vector with no duplicates 158s returns an unchanged vector 158s if the vector has more than 32 elements and is initialized with Vector.new 158s returns an unchanged vector 158s on a 10-item vector 158s behaves like Array#uniq 158s on a 31-item vector 158s behaves like Array#uniq 158s on a 32-item vector 158s behaves like Array#uniq 158s on a 33-item vector 158s behaves like Array#uniq 158s on a 1000-item vector 158s behaves like Array#uniq 158s on a 1023-item vector 158s behaves like Array#uniq 158s on a 1024-item vector 158s behaves like Array#uniq 158s on a 1025-item vector 158s behaves like Array#uniq 158s on a 2000-item vector 158s behaves like Array#uniq 158s from a subclass 158s returns an instance of the subclass 158s 158s Hamster::Vector 158s #unshift 158s on [] with "A" 158s preserves the original 158s returns ["A"] 158s on ["A"] with "B" 158s preserves the original 158s returns ["B", "A"] 158s on ["A"] with "A" 158s preserves the original 158s returns ["A", "A"] 158s on ["A", "B", "C"] with "D" 158s preserves the original 158s returns ["D", "A", "B", "C"] 158s on 1..31 with 0 158s preserves the original 158s returns 0..31 158s on 1..32 with 0 158s preserves the original 158s returns 0..32 158s on 1..33 with 0 158s preserves the original 158s returns 0..33 158s 158s Hamster::Vector 158s #values_at 158s accepts any number of indices, and returns a vector of items at those indices 158s when passed invalid indices 158s fills in with nils 158s when passed no arguments 158s returns an empty vector 158s from a subclass 158s returns an instance of the subclass 158s 158s Hamster::Vector 158s #zip 158s with a block 158s yields arrays of one corresponding element from each input sequence 158s fills in the missing values with nils 158s returns nil 158s can handle multiple inputs, of different classes 158s without a block 158s returns a vector of arrays (one corresponding element from each input sequence) 158s on 10-item vectors 158s behaves like Array#zip 158s on 31-item vectors 158s behaves like Array#zip 158s on 32-item vectors 158s behaves like Array#zip 158s on 33-item vectors 158s behaves like Array#zip 158s on 1000-item vectors 158s behaves like Array#zip 158s on 1023-item vectors 158s behaves like Array#zip 158s on 1024-item vectors 158s behaves like Array#zip 158s on 1025-item vectors 158s behaves like Array#zip 158s from a subclass 158s returns an instance of the subclass 158s 158s Hamster 158s Hash 158s can be loaded separately 158s Set 158s can be loaded separately 158s Vector 158s can be loaded separately 158s List 158s can be loaded separately 158s SortedSet 158s can be loaded separately 158s Deque 159s can be loaded separately 159s 159s Pending: (Failures listed here are expected and do not affect your suite's status) 159s 159s 1) Hamster::List doesn't give horrendously bad performance if thread realizing the list sleeps 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/list/multithreading_spec.rb:33 159s 159s 2) Hamster.to_ruby with Hamster::Hash["b" => Hamster::Vector[2, Hamster::Hash["c" => 3], 4], "h" => /ijk/, "e" => Hamster::Hash["f" => 8, "g" => 9], "d" => Hamster::Set[5, 6, 7], "a" => 1] as input should return {"a"=>1, "b"=>[2, {"c"=>3}, 4], "d"=>#, "e"=>{"f"=>8, "g"=>9}, "h"=>/ijk/} 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 3) Hamster.to_ruby with Hamster::Hash[] as input should return {} 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 4) Hamster.to_ruby with Hamster::Hash["b" => 2, "c" => 3, "a" => 1] as input should return {"a"=>1, "b"=>2, "c"=>3} 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 5) Hamster.to_ruby with Hamster::Vector[] as input should return [] 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 6) Hamster.to_ruby with Hamster::Vector[1, 2, 3] as input should return [1, 2, 3] 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 7) Hamster.to_ruby with Hamster::Set[] as input should return # 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 8) Hamster.to_ruby with Hamster::Set[2, 1, 3] as input should return # 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 9) Hamster.to_ruby with 42 as input should return 42 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s 10) Hamster.to_ruby with #> as input should return #> 159s # Temporarily skipped with xit 159s # ./spec/lib/hamster/nested/construction_spec.rb:64 159s 159s Finished in 11.36 seconds (files took 1.36 seconds to load) 159s 4593 examples, 0 failures, 10 pending 159s 159s mv ./.gem2deb.lib lib 159s autopkgtest [07:07:18]: test gem2deb-test-runner: -----------------------] 159s gem2deb-test-runner PASS 159s autopkgtest [07:07:18]: test gem2deb-test-runner: - - - - - - - - - - results - - - - - - - - - - 160s autopkgtest [07:07:19]: @@@@@@@@@@@@@@@@@@@@ summary 160s gem2deb-test-runner PASS