combinatorics 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +4 -4
- data/.gitignore +2 -1
- data/ChangeLog.md +6 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -3
- data/Rakefile +0 -2
- data/combinatorics.gemspec +1 -4
- data/gemspec.yml +1 -1
- data/lib/combinatorics/cartesian_product/cardinality.rb +2 -0
- data/lib/combinatorics/cartesian_product/extensions/array.rb +3 -1
- data/lib/combinatorics/cartesian_product/extensions/set.rb +3 -1
- data/lib/combinatorics/cartesian_product/extensions.rb +4 -2
- data/lib/combinatorics/cartesian_product/mixin.rb +3 -1
- data/lib/combinatorics/cartesian_product.rb +5 -3
- data/lib/combinatorics/choose/cardinality.rb +3 -1
- data/lib/combinatorics/choose/extensions/array.rb +3 -1
- data/lib/combinatorics/choose/extensions/set.rb +4 -1
- data/lib/combinatorics/choose/extensions.rb +4 -2
- data/lib/combinatorics/choose/mixin.rb +2 -0
- data/lib/combinatorics/choose.rb +5 -3
- data/lib/combinatorics/derange/cardinality.rb +3 -1
- data/lib/combinatorics/derange/extensions/array.rb +3 -1
- data/lib/combinatorics/derange/extensions.rb +3 -1
- data/lib/combinatorics/derange/mixin.rb +2 -0
- data/lib/combinatorics/derange.rb +5 -3
- data/lib/combinatorics/enumerator.rb +2 -0
- data/lib/combinatorics/extensions/math.rb +2 -0
- data/lib/combinatorics/extensions/range.rb +2 -0
- data/lib/combinatorics/extensions.rb +3 -1
- data/lib/combinatorics/generator.rb +2 -0
- data/lib/combinatorics/list_comprehension.rb +3 -1
- data/lib/combinatorics/permute/cardinality.rb +3 -1
- data/lib/combinatorics/permute/extensions/array.rb +3 -1
- data/lib/combinatorics/permute/extensions/set.rb +3 -1
- data/lib/combinatorics/permute/extensions.rb +4 -2
- data/lib/combinatorics/permute/mixin.rb +2 -0
- data/lib/combinatorics/permute.rb +5 -3
- data/lib/combinatorics/power_set/cardinality.rb +3 -1
- data/lib/combinatorics/power_set/extensions/array.rb +3 -1
- data/lib/combinatorics/power_set/extensions/set.rb +3 -1
- data/lib/combinatorics/power_set/extensions.rb +4 -2
- data/lib/combinatorics/power_set/mixin.rb +2 -0
- data/lib/combinatorics/power_set.rb +5 -3
- data/lib/combinatorics/version.rb +3 -1
- data/lib/combinatorics.rb +12 -10
- data/spec/cartesian_product/cardinality_spec.rb +1 -3
- data/spec/choose/cardinality_spec.rb +1 -3
- data/spec/derange/cardinality_spec.rb +1 -3
- data/spec/permute/cardinality_spec.rb +1 -3
- data/spec/power_set/cardinality_spec.rb +1 -3
- data/spec/spec_helper.rb +2 -3
- metadata +4 -5
- data/.gemtest +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2e5a4e1e77069bf882a67e27933b8640723ee43a209b3a7d4b442238a4d7e45
|
4
|
+
data.tar.gz: 595e89e295c7f9dae763f890f460f745edd743ac12340c5f8785677caa6a56b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7eaec1f50156aa63c48212782b2cddd9a18b7dab7ba5986201f97c16b1ca9d01311b675c503b1cbe19ecb9ad63cef946a47f0eeef58742b62a8deb53b228ff30
|
7
|
+
data.tar.gz: af34206cde9e21f8637ac54449563456c81f939a3ca032c64e0a98fe5220918d5f9c03b6eefe3cf8c5b8c44280701c1121b7770ae1b4d6c8323eed0091cb2eb0
|
data/.github/workflows/ruby.yml
CHANGED
@@ -9,15 +9,15 @@ jobs:
|
|
9
9
|
fail-fast: false
|
10
10
|
matrix:
|
11
11
|
ruby:
|
12
|
-
- 2.6
|
13
|
-
- 2.7
|
14
12
|
- '3.0'
|
15
|
-
- 3.1
|
13
|
+
- '3.1'
|
14
|
+
- '3.2'
|
15
|
+
- '3.3'
|
16
16
|
- jruby
|
17
17
|
- truffleruby
|
18
18
|
name: Ruby ${{ matrix.ruby }}
|
19
19
|
steps:
|
20
|
-
- uses: actions/checkout@
|
20
|
+
- uses: actions/checkout@v4
|
21
21
|
- name: Set up Ruby
|
22
22
|
uses: ruby/setup-ruby@v1
|
23
23
|
with:
|
data/.gitignore
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
### 0.5.0 / 2024-01-25
|
2
|
+
|
3
|
+
* Require [ruby](http://www.ruby-lang.org/) >= 2.0.0.
|
4
|
+
* Switched to using `require_relative` to improve load-times.
|
5
|
+
* Added `# frozen_string_literal: true` to all files.
|
6
|
+
|
1
7
|
### 0.4.4 / 2022-01-16
|
2
8
|
|
3
9
|
* Fixed a bug in {Combinatorics::Choose.cardinality} for when `0`
|
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -190,7 +190,7 @@ Enumerate over every sub-range between two ranges:
|
|
190
190
|
|
191
191
|
## Requirements
|
192
192
|
|
193
|
-
* [ruby](http://www.ruby-lang.org/) >=
|
193
|
+
* [ruby](http://www.ruby-lang.org/) >= 2.0.0
|
194
194
|
|
195
195
|
## Install
|
196
196
|
|
@@ -200,6 +200,4 @@ $ gem install combinatorics
|
|
200
200
|
|
201
201
|
## Copyright
|
202
202
|
|
203
|
-
Copyright (c) 2010-2022 Hal Brodigan
|
204
|
-
|
205
203
|
See {file:LICENSE.txt} for license information.
|
data/Rakefile
CHANGED
data/combinatorics.gemspec
CHANGED
@@ -7,10 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
|
8
8
|
gem.name = gemspec.fetch('name')
|
9
9
|
gem.version = gemspec.fetch('version') do
|
10
|
-
|
11
|
-
$LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
|
12
|
-
|
13
|
-
require 'combinatorics/version'
|
10
|
+
require_relative 'lib/combinatorics/version'
|
14
11
|
Combinatorics::VERSION
|
15
12
|
end
|
16
13
|
|
data/gemspec.yml
CHANGED
@@ -19,7 +19,7 @@ metadata:
|
|
19
19
|
bug_tracker_uri: https://github.com/postmodern/combinatorics.rb/issues
|
20
20
|
changelog_uri: https://github.com/postmodern/combinatorics.rb/blob/master/ChangeLog.md
|
21
21
|
|
22
|
-
required_ruby_version: ">=
|
22
|
+
required_ruby_version: ">= 2.0.0"
|
23
23
|
|
24
24
|
development_dependencies:
|
25
25
|
bundler: ~> 2.0
|
@@ -1,3 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'cartesian_product/mixin'
|
4
|
+
require_relative 'cartesian_product/extensions'
|
5
|
+
require_relative 'cartesian_product/cardinality'
|
data/lib/combinatorics/choose.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'choose/mixin'
|
4
|
+
require_relative 'choose/extensions'
|
5
|
+
require_relative 'choose/cardinality'
|
@@ -1,3 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'derange/mixin'
|
4
|
+
require_relative 'derange/extensions'
|
5
|
+
require_relative 'derange/cardinality'
|
@@ -1,3 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'permute/cardinality'
|
4
|
+
require_relative 'permute/mixin'
|
5
|
+
require_relative 'permute/extensions'
|
@@ -1,3 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'power_set/mixin'
|
4
|
+
require_relative 'power_set/extensions'
|
5
|
+
require_relative 'power_set/cardinality'
|
data/lib/combinatorics.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
|
2
|
-
require 'combinatorics/choose'
|
3
|
-
require 'combinatorics/derange'
|
4
|
-
require 'combinatorics/extensions'
|
5
|
-
require 'combinatorics/list_comprehension'
|
6
|
-
require 'combinatorics/power_set'
|
7
|
-
require 'combinatorics/permute'
|
8
|
-
require 'combinatorics/version'
|
1
|
+
# frozen_string_literal: true
|
9
2
|
|
10
|
-
|
11
|
-
|
3
|
+
require_relative 'combinatorics/cartesian_product'
|
4
|
+
require_relative 'combinatorics/choose'
|
5
|
+
require_relative 'combinatorics/derange'
|
6
|
+
require_relative 'combinatorics/extensions'
|
7
|
+
require_relative 'combinatorics/list_comprehension'
|
8
|
+
require_relative 'combinatorics/power_set'
|
9
|
+
require_relative 'combinatorics/permute'
|
10
|
+
require_relative 'combinatorics/version'
|
11
|
+
|
12
|
+
# TODO: inversions (permutation mutations)
|
13
|
+
# TODO: set families (approximate power set subsets)
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'combinatorics/cartesian_product'
|
3
3
|
|
4
|
-
describe CartesianProduct do
|
5
|
-
subject { CartesianProduct }
|
6
|
-
|
4
|
+
describe Combinatorics::CartesianProduct do
|
7
5
|
describe "cardinality" do
|
8
6
|
it "should return 1 for cardinality(1, 1)" do
|
9
7
|
expect(subject.cardinality(1, 1)).to eq(1)
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'combinatorics/choose'
|
3
3
|
|
4
|
-
describe Choose do
|
5
|
-
subject { Choose }
|
6
|
-
|
4
|
+
describe Combinatorics::Choose do
|
7
5
|
describe "cardinality" do
|
8
6
|
it "should raise RangeError if n is negative" do
|
9
7
|
expect { subject.cardinality(-1) }.to raise_error(RangeError)
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'combinatorics/permute'
|
3
3
|
|
4
|
-
describe Permute do
|
5
|
-
subject { Permute }
|
6
|
-
|
4
|
+
describe Combinatorics::Permute do
|
7
5
|
describe "cardinality" do
|
8
6
|
it "should raise RangeError if n is negative without passing r" do
|
9
7
|
expect { subject.cardinality(-1) }.to raise_error(RangeError)
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: combinatorics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -38,7 +38,6 @@ extra_rdoc_files:
|
|
38
38
|
- README.md
|
39
39
|
files:
|
40
40
|
- ".document"
|
41
|
-
- ".gemtest"
|
42
41
|
- ".github/workflows/ruby.yml"
|
43
42
|
- ".gitignore"
|
44
43
|
- ".rspec"
|
@@ -137,14 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
136
|
requirements:
|
138
137
|
- - ">="
|
139
138
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
139
|
+
version: 2.0.0
|
141
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
141
|
requirements:
|
143
142
|
- - ">="
|
144
143
|
- !ruby/object:Gem::Version
|
145
144
|
version: '0'
|
146
145
|
requirements: []
|
147
|
-
rubygems_version: 3.
|
146
|
+
rubygems_version: 3.4.10
|
148
147
|
signing_key:
|
149
148
|
specification_version: 4
|
150
149
|
summary: Bringing (more) Combinatorics to Ruby
|
data/.gemtest
DELETED
File without changes
|