six45 0.0.3 → 0.0.4
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.
- data/.travis.yml +5 -0
- data/CHANGELOG.md +27 -0
- data/Gemfile +1 -5
- data/README.md +8 -6
- data/Rakefile +5 -0
- data/bin/six45 +9 -1
- data/lib/six45.rb +19 -39
- data/lib/six45/seeds.rb +38 -0
- data/lib/six45/version.rb +1 -1
- data/six45.gemspec +15 -11
- data/spec/six45/seeds_spec.rb +74 -0
- data/spec/six45_spec.rb +121 -76
- data/spec/spec_helper.rb +2 -0
- metadata +42 -4
- data/lib/six45/Seeds.rb +0 -13
data/CHANGELOG.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
## 0.0.3 2012-06-27
|
2
|
+
* Improved functionality
|
3
|
+
* Takes 1 string argument 'system', to return 1 system game, contains 8 numbers from 45 (Default: System 8).
|
4
|
+
* Takes 1 string argument 'system' and 1 integer argument 'x', to return 1 system game, each contains 'x' numbers from 45.
|
5
|
+
|
6
|
+
``` ruby
|
7
|
+
six45 system #=> Returns 1 system game, which contains 8 numbers from 45 (Default: System 8).
|
8
|
+
six45 system 9 #=> Returns 1 system game, which contains 9 numbers from 45 (System 9).
|
9
|
+
```
|
10
|
+
|
11
|
+
## 0.0.2 2012-06-26
|
12
|
+
* Improved functionality
|
13
|
+
* Takes 1 integer argument 'x', to return 'x' game(s).
|
14
|
+
* Takes 1 string argument 'magic', to return at least 8 games, and covers at least 23 numbers from 45.
|
15
|
+
|
16
|
+
``` ruby
|
17
|
+
six45 30 #=> Returns 30 standard games.
|
18
|
+
six45 magic #=> Returns at least 8 games, which will cover at least 23 numbers from 45.
|
19
|
+
```
|
20
|
+
|
21
|
+
## 0.0.1 2012-06-23
|
22
|
+
* Initial release.
|
23
|
+
* Picks 6 numbers out of 45, 10 games.
|
24
|
+
|
25
|
+
``` ruby
|
26
|
+
six45 #=> Returns 10 standard games.
|
27
|
+
```
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Six45
|
1
|
+
# Six45 [](http://travis-ci.org/moom/six45)
|
2
2
|
|
3
3
|
A Gem helps pick 6 numbers out of 45.
|
4
4
|
|
@@ -20,11 +20,13 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
Run 'six45' in commandline:
|
22
22
|
|
23
|
-
# six45
|
24
|
-
# six45 30
|
25
|
-
# six45 magic
|
26
|
-
# six45 system
|
27
|
-
# six45 system 9
|
23
|
+
# six45 => Returns 10 standard games.
|
24
|
+
# six45 30 => Returns 30 standard games.
|
25
|
+
# six45 magic => Returns at least 8 games, which will cover at least 23 numbers from 45.
|
26
|
+
# six45 system => Returns 1 system-8 game, which contains 8 numbers from 45 (Default: System 8).
|
27
|
+
# six45 system 9 => Returns 1 system-9 game, which contains 9 numbers from 45 (System 9).
|
28
|
+
# six45 magic system => Returns 8 standard games, which covers all 45 numbers.
|
29
|
+
# six45 magic system 9 => Returns 5 system-9 games, each contains 9 numbers from 45 (System 9), and cover all 45 numbers.
|
28
30
|
|
29
31
|
## Contributing
|
30
32
|
|
data/Rakefile
CHANGED
data/bin/six45
CHANGED
@@ -4,7 +4,15 @@ require 'six45'
|
|
4
4
|
require 'pp'
|
5
5
|
|
6
6
|
if ARGV[0] == "magic"
|
7
|
-
|
7
|
+
if ARGV[1] == "system"
|
8
|
+
if Six45.is_number?(ARGV[2])
|
9
|
+
Six45.magic_system_pick(ARGV[2].to_i).each { |game| pp game }
|
10
|
+
else
|
11
|
+
Six45.magic_system_pick.each { |game| pp game }
|
12
|
+
end
|
13
|
+
else
|
14
|
+
Six45.magic_pick.each { |key, game| pp game }
|
15
|
+
end
|
8
16
|
elsif ARGV[0] == "system"
|
9
17
|
number_of_numbers = Six45.is_number?(ARGV[1]) ? ARGV[1].to_i : 8
|
10
18
|
Six45.system_pick(number_of_numbers).each { |key, game| pp game }
|
data/lib/six45.rb
CHANGED
@@ -8,50 +8,21 @@ module Six45
|
|
8
8
|
Seeds.new.generate seed_size
|
9
9
|
end
|
10
10
|
|
11
|
-
def lucky_candidates(seed_size=6)
|
12
|
-
lucky_seed = Seeds.new.generate seed_size
|
13
|
-
candidates = []
|
14
|
-
while lucky_seed.size > 0
|
15
|
-
candidates << lucky_seed.inject { |sum, d| sum+d }
|
16
|
-
lucky_seed.pop
|
17
|
-
end
|
18
|
-
candidates.sort
|
19
|
-
end
|
20
|
-
|
21
|
-
def lucky_numbers(game_size=6)
|
22
|
-
numbers = lucky_candidates game_size
|
23
|
-
if numbers.any? { |d| d > 45 } || numbers.inject { |sum, d| sum+d } < 60
|
24
|
-
lucky_numbers game_size
|
25
|
-
else
|
26
|
-
numbers
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
11
|
def pick(number_of_games=10)
|
31
12
|
games = {}
|
32
13
|
number_of_games.times do |i|
|
33
|
-
games[i] = lucky_numbers
|
14
|
+
games[i] = Seeds.new.lucky_numbers
|
34
15
|
end
|
35
16
|
games
|
36
17
|
end
|
37
18
|
|
38
|
-
def magic_seed
|
39
|
-
a_magic_seed = seed 5
|
40
|
-
sum_of_the_seed = a_magic_seed.inject { |sum, n| sum+n }
|
41
|
-
if sum_of_the_seed>36 || is_odd?(sum_of_the_seed)
|
42
|
-
magic_seed
|
43
|
-
else
|
44
|
-
a_magic_seed
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
19
|
def magic_pick
|
49
20
|
magic_numbers = []
|
50
21
|
magic_games = {}
|
51
22
|
a_magic_seed = [1]
|
52
|
-
a_magic_seed += magic_seed
|
23
|
+
a_magic_seed += Seeds.new.magic_seed
|
53
24
|
while a_magic_seed.size > 1 do
|
54
|
-
magic_numbers << a_magic_seed.inject(1
|
25
|
+
magic_numbers << a_magic_seed.inject(1, &:+)
|
55
26
|
a_magic_seed.pop
|
56
27
|
end
|
57
28
|
magic_numbers << a_magic_seed.last
|
@@ -63,16 +34,25 @@ module Six45
|
|
63
34
|
end
|
64
35
|
|
65
36
|
def system_pick(size_of_games=8)
|
66
|
-
{
|
37
|
+
{1 => (Seeds.new.lucky_numbers size_of_games)}
|
38
|
+
end
|
39
|
+
|
40
|
+
def magic_system_pick(size_of_games=6)
|
41
|
+
number_of_games = 45/size_of_games
|
42
|
+
all_numbers = (1..45).to_a
|
43
|
+
all_games = (1..number_of_games).map do
|
44
|
+
chosen_numbers = all_numbers.sample(size_of_games).sort
|
45
|
+
all_numbers -= chosen_numbers
|
46
|
+
chosen_numbers
|
47
|
+
end
|
48
|
+
unless all_numbers.size == 0
|
49
|
+
all_numbers += ((1..45).to_a - all_numbers).sample(size_of_games - all_numbers.size)
|
50
|
+
all_games << all_numbers.sort
|
51
|
+
end
|
52
|
+
all_games
|
67
53
|
end
|
68
54
|
|
69
55
|
def is_number?(i)
|
70
56
|
true if Float(i) rescue false
|
71
57
|
end
|
72
|
-
|
73
|
-
private
|
74
|
-
def is_odd?(number)
|
75
|
-
number%2 == 1 ? true : false
|
76
|
-
end
|
77
|
-
|
78
58
|
end
|
data/lib/six45/seeds.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
module Six45
|
2
|
+
class Seeds
|
3
|
+
|
4
|
+
def initialize(min=1, max=13)
|
5
|
+
@min = min
|
6
|
+
@max = max
|
7
|
+
end
|
8
|
+
|
9
|
+
def generate(seed_size=6)
|
10
|
+
seed_size.times.map { rand(@min..@max) }
|
11
|
+
end
|
12
|
+
|
13
|
+
def magic_seed
|
14
|
+
a_magic_seed = generate 5
|
15
|
+
sum_of_the_seed = a_magic_seed.inject(0, &:+)
|
16
|
+
if sum_of_the_seed>36 || sum_of_the_seed.odd?
|
17
|
+
magic_seed
|
18
|
+
else
|
19
|
+
a_magic_seed
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def lucky_numbers(game_size=6)
|
24
|
+
lucky_seed = generate game_size
|
25
|
+
numbers = []
|
26
|
+
while lucky_seed.size > 0
|
27
|
+
numbers << lucky_seed.inject(0, &:+)
|
28
|
+
lucky_seed.pop
|
29
|
+
end
|
30
|
+
if numbers.any? { |d| d > 45 } || numbers.uniq.size < game_size || numbers.inject(0, &:+) < 60
|
31
|
+
lucky_numbers game_size
|
32
|
+
else
|
33
|
+
numbers.sort
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
data/lib/six45/version.rb
CHANGED
data/six45.gemspec
CHANGED
@@ -1,17 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require 'six45/version'
|
3
4
|
|
4
5
|
Gem::Specification.new do |gem|
|
5
|
-
gem.authors
|
6
|
-
gem.email
|
7
|
-
gem.description
|
8
|
-
gem.summary
|
9
|
-
gem.homepage
|
6
|
+
gem.authors = ["Felix Wang"]
|
7
|
+
gem.email = ["moom.felix@gmail.com"]
|
8
|
+
gem.description = %q{A Gem helps pick 6 digits out of 45.}
|
9
|
+
gem.summary = %q{A Gem helps pick 6 digits out of 45.}
|
10
|
+
gem.homepage = "https://github.com/moom/six45.git"
|
10
11
|
|
11
|
-
gem.files
|
12
|
-
gem.executables
|
13
|
-
gem.test_files
|
14
|
-
gem.name
|
12
|
+
gem.files = `git ls-files`.split($\)
|
13
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
14
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
15
|
+
gem.name = "six45"
|
15
16
|
gem.require_paths = ["lib"]
|
16
|
-
gem.version
|
17
|
+
gem.version = Six45::VERSION
|
18
|
+
|
19
|
+
gem.add_development_dependency 'rake'
|
20
|
+
gem.add_development_dependency 'rspec'
|
17
21
|
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Six45::Seeds do
|
4
|
+
|
5
|
+
let(:seeds_obj) { Six45::Seeds.new }
|
6
|
+
|
7
|
+
context "#generate" do
|
8
|
+
let(:seed) { seeds_obj.generate }
|
9
|
+
let(:seed_five) { lambda { Six45::Seeds.new.generate 5 } }
|
10
|
+
it "returns an array" do
|
11
|
+
seed.should be_kind_of(Array)
|
12
|
+
end
|
13
|
+
it "containing 6 numbers" do
|
14
|
+
seed.size.should eq(6)
|
15
|
+
end
|
16
|
+
it "each number is less than 13" do
|
17
|
+
seed.each { |n| n.should be <=13 }
|
18
|
+
end
|
19
|
+
it "also accepts an integer argument 5" do
|
20
|
+
seed_five.call.should_not raise_error ArgumentError
|
21
|
+
end
|
22
|
+
it "returns an array" do
|
23
|
+
seed_five.call.should be_kind_of(Array)
|
24
|
+
end
|
25
|
+
it "containing 5 numbers" do
|
26
|
+
seed_five.call.size.should eq(5)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "#magic_seed" do
|
31
|
+
let(:magic_seed) { seeds_obj.magic_seed }
|
32
|
+
let(:sum_of_seed) { magic_seed.inject(0, &:+) }
|
33
|
+
it "returns an array" do
|
34
|
+
magic_seed.should be_kind_of(Array)
|
35
|
+
end
|
36
|
+
it "containing 5 numbers" do
|
37
|
+
magic_seed.size.should eq(5)
|
38
|
+
end
|
39
|
+
it "each number is less than 13" do
|
40
|
+
magic_seed.each { |n| n.should be <=13 }
|
41
|
+
end
|
42
|
+
it "sum of the seed is equal or less than 36" do
|
43
|
+
sum_of_seed.should be <=36
|
44
|
+
end
|
45
|
+
it "sum of the seed is an even number" do
|
46
|
+
sum_of_seed.even?.should eq(true)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "#lucky_numbers" do
|
51
|
+
let(:lucky_numbers) { seeds_obj.lucky_numbers }
|
52
|
+
let(:sum_of_lucky_numbers) { lucky_numbers.inject(0, &:+) }
|
53
|
+
it "returns an array" do
|
54
|
+
lucky_numbers.should be_kind_of(Array)
|
55
|
+
end
|
56
|
+
it "containing 6 numbers" do
|
57
|
+
lucky_numbers.size.should eq(6)
|
58
|
+
end
|
59
|
+
it "each number is less than 45" do
|
60
|
+
lucky_numbers.each { |n| n.should be <=45 }
|
61
|
+
end
|
62
|
+
it "sum of the lucky numbers is greater than 60" do
|
63
|
+
sum_of_lucky_numbers.should be >60
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
data/spec/six45_spec.rb
CHANGED
@@ -1,89 +1,98 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Six45 do
|
4
4
|
|
5
|
-
|
6
|
-
let(:seed) { Six45.seed }
|
7
|
-
let(:seed_five) { lambda { Six45.seed 5 } }
|
8
|
-
it "returns an array" do
|
9
|
-
seed.should be_kind_of(Array)
|
10
|
-
end
|
11
|
-
it "containing 6 numbers" do
|
12
|
-
seed.size.should eq(6)
|
13
|
-
end
|
14
|
-
it "each number is less than 13" do
|
15
|
-
seed.each { |n| n.should be <= 13 }
|
16
|
-
end
|
17
|
-
it "also accepts an integer argument 5" do
|
18
|
-
seed_five.call.should_not raise_error ArgumentError
|
19
|
-
end
|
20
|
-
it "returns an array" do
|
21
|
-
seed_five.call.should be_kind_of(Array)
|
22
|
-
end
|
23
|
-
it "containing 5 numbers" do
|
24
|
-
seed_five.call.size.should be 5
|
25
|
-
end
|
26
|
-
end
|
5
|
+
let(:mock_seeds_obj) { mock("Seeds") }
|
27
6
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
lucky_numbers.should be_kind_of(Hash)
|
34
|
-
end
|
35
|
-
it "containing 10 games" do
|
36
|
-
lucky_numbers.size.should be 10
|
37
|
-
end
|
38
|
-
it "each game contains 6 numbers" do
|
39
|
-
lucky_numbers.each { |k, g| g.size.should eq(6) }
|
40
|
-
end
|
41
|
-
it "each number is unique" do
|
42
|
-
lucky_numbers.each { |k, g| g.uniq.size.should eq g.size }
|
43
|
-
end
|
44
|
-
it "each number is less than 45" do
|
45
|
-
lucky_numbers.each { |k, g| g.each { |n| n.should be <= 45 } }
|
46
|
-
end
|
47
|
-
it "sum of all numbers is greater than 60" do
|
48
|
-
lucky_numbers.each { |k, g| g.inject { |sum, n| sum+n }.should be > 60 }
|
49
|
-
end
|
50
|
-
it "also accepts an integer argument 5" do
|
51
|
-
pick_five.call.should_not raise_error ArgumentError
|
52
|
-
end
|
53
|
-
it "returns a hash" do
|
54
|
-
pick_five.call.should be_kind_of(Hash)
|
55
|
-
end
|
56
|
-
it "containing 5 games" do
|
57
|
-
pick_five.call.size.should be 5
|
58
|
-
end
|
7
|
+
before(:each) do
|
8
|
+
Six45::Seeds.stub(:new).and_return(mock_seeds_obj)
|
9
|
+
mock_seeds_obj.stub(:generate).and_return([4, 3, 10, 8, 2, 1])
|
10
|
+
mock_seeds_obj.stub(:magic_seed).and_return([3, 10, 8, 2, 1])
|
11
|
+
mock_seeds_obj.stub(:lucky_numbers).and_return([7, 11, 22, 28, 34, 42])
|
59
12
|
end
|
60
13
|
|
61
|
-
context "#
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
14
|
+
context "#seed" do
|
15
|
+
it "sends 'new' and 'generate' messages to Seeds" do
|
16
|
+
Six45::Seeds.should_receive(:new).and_return(mock_seeds_obj)
|
17
|
+
mock_seeds_obj.should_receive(:generate).with(6)
|
18
|
+
Six45.seed
|
19
|
+
end
|
20
|
+
it "returns an array of 6 numbers" do
|
21
|
+
the_seed = Six45.seed
|
22
|
+
the_seed.should be_kind_of(Array)
|
23
|
+
the_seed.size.should be 6
|
24
|
+
end
|
25
|
+
it "each number is less than 13" do
|
26
|
+
the_seed = Six45.seed
|
27
|
+
the_seed.each { |seed| seed.should be <13 }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "#pick" do
|
32
|
+
let(:lucky_numbers) { Six45.pick }
|
33
|
+
it "returns a hash" do
|
34
|
+
lucky_numbers.should be_kind_of(Hash)
|
35
|
+
end
|
36
|
+
it "containing 10 games" do
|
37
|
+
lucky_numbers.size.should be 10
|
38
|
+
end
|
39
|
+
it "each game contains 6 numbers" do
|
40
|
+
lucky_numbers.each { |k, g| g.size.should eq(6) }
|
41
|
+
end
|
42
|
+
it "each number is unique" do
|
43
|
+
lucky_numbers.each { |k, g| g.uniq.size.should eq g.size }
|
44
|
+
end
|
45
|
+
it "each number is less than 45" do
|
46
|
+
lucky_numbers.each { |k, g| g.each { |n| n.should be <= 45 } }
|
47
|
+
end
|
48
|
+
it "sum of all numbers is greater than 60" do
|
49
|
+
lucky_numbers.each { |k, g| g.inject(0, &:+).should be > 60 }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "#Pick number_of_games" do
|
54
|
+
let(:pick_five) { lambda { Six45.pick 5 } }
|
55
|
+
it "also accepts an integer argument 5" do
|
56
|
+
pick_five.call.should_not raise_error ArgumentError
|
57
|
+
end
|
58
|
+
it "returns a hash" do
|
59
|
+
pick_five.call.should be_kind_of(Hash)
|
60
|
+
end
|
61
|
+
it "containing 5 games" do
|
62
|
+
pick_five.call.size.should be 5
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "#magic_pick" do
|
67
|
+
let(:lucky_numbers) { Six45.magic_pick }
|
68
|
+
it "returns a hash" do
|
69
|
+
lucky_numbers.should be_kind_of(Hash)
|
70
|
+
end
|
71
|
+
it "containing at least 8 games" do
|
72
|
+
lucky_numbers.size.should be >= 8
|
73
|
+
end
|
74
|
+
it "each game contains 6 unique numbers" do
|
75
|
+
lucky_numbers.each do |k, g|
|
76
|
+
g.size.should eq g.uniq.size
|
77
|
+
g.size.should eq 6
|
78
|
+
end
|
79
|
+
end
|
80
|
+
it "all games cover at least 23 numbers" do
|
81
|
+
all_numbers = lucky_numbers.map { |k, v| v }.flatten.uniq
|
82
|
+
all_numbers.size.should be > 23
|
83
|
+
end
|
84
|
+
it "always returns even number of games" do
|
85
|
+
(lucky_numbers.size%2).should be 0
|
86
|
+
end
|
87
|
+
end
|
83
88
|
|
84
89
|
context "#system_pick" do
|
85
90
|
let(:lucky_numbers) { Six45.system_pick }
|
86
91
|
let(:pick_nine) { lambda { Six45.system_pick 9 } }
|
92
|
+
before(:each) do
|
93
|
+
mock_seeds_obj.stub(:lucky_numbers).with(8).and_return([7, 11, 22, 28, 34, 38, 41, 42])
|
94
|
+
mock_seeds_obj.stub(:lucky_numbers).with(9).and_return([7, 11, 18, 22, 28, 34, 38, 41, 42])
|
95
|
+
end
|
87
96
|
it "returns a hash" do
|
88
97
|
lucky_numbers.should be_kind_of(Hash)
|
89
98
|
end
|
@@ -109,4 +118,40 @@ describe Six45 do
|
|
109
118
|
pick_nine.call[1].size.should be 9
|
110
119
|
end
|
111
120
|
end
|
121
|
+
|
122
|
+
context "#magic_system_pick" do
|
123
|
+
let(:magic_system_lucky_numbers) { Six45.magic_system_pick }
|
124
|
+
let(:magic_system_pick_nine) { lambda { Six45.magic_system_pick 9 } }
|
125
|
+
before(:each) do
|
126
|
+
mock_seeds_obj.stub(:lucky_numbers).with(8).and_return([7, 11, 22, 28, 34, 38, 41, 42])
|
127
|
+
mock_seeds_obj.stub(:lucky_numbers).with(9).and_return([7, 11, 18, 22, 28, 34, 38, 41, 42])
|
128
|
+
end
|
129
|
+
it "returns an array" do
|
130
|
+
magic_system_lucky_numbers.should be_kind_of(Array)
|
131
|
+
end
|
132
|
+
it "containing 8 games" do
|
133
|
+
magic_system_lucky_numbers.size.should be 8
|
134
|
+
end
|
135
|
+
it "the game contains 6 unique numbers" do
|
136
|
+
magic_system_lucky_numbers.each do |g|
|
137
|
+
g.size.should eq g.uniq.size
|
138
|
+
g.size.should eq 6
|
139
|
+
end
|
140
|
+
end
|
141
|
+
it "also accepts an integer argument 9" do
|
142
|
+
magic_system_pick_nine.call.should_not raise_error ArgumentError
|
143
|
+
end
|
144
|
+
it "returns an array" do
|
145
|
+
magic_system_pick_nine.call.should be_kind_of(Array)
|
146
|
+
end
|
147
|
+
it "containing 5 game" do
|
148
|
+
magic_system_pick_nine.call.size.should be 5
|
149
|
+
end
|
150
|
+
it "the game contains 9 unique numbers" do
|
151
|
+
magic_system_pick_nine.call[1].size.should be 9
|
152
|
+
end
|
153
|
+
it "all games cover all 45 numbers" do
|
154
|
+
magic_system_pick_nine.call.flatten.uniq.size.should be 45
|
155
|
+
end
|
156
|
+
end
|
112
157
|
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: six45
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,40 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-07-20 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
14
46
|
description: A Gem helps pick 6 digits out of 45.
|
15
47
|
email:
|
16
48
|
- moom.felix@gmail.com
|
@@ -20,16 +52,20 @@ extensions: []
|
|
20
52
|
extra_rdoc_files: []
|
21
53
|
files:
|
22
54
|
- .gitignore
|
55
|
+
- .travis.yml
|
56
|
+
- CHANGELOG.md
|
23
57
|
- Gemfile
|
24
58
|
- LICENSE
|
25
59
|
- README.md
|
26
60
|
- Rakefile
|
27
61
|
- bin/six45
|
28
62
|
- lib/six45.rb
|
29
|
-
- lib/six45/
|
63
|
+
- lib/six45/seeds.rb
|
30
64
|
- lib/six45/version.rb
|
31
65
|
- six45.gemspec
|
66
|
+
- spec/six45/seeds_spec.rb
|
32
67
|
- spec/six45_spec.rb
|
68
|
+
- spec/spec_helper.rb
|
33
69
|
homepage: https://github.com/moom/six45.git
|
34
70
|
licenses: []
|
35
71
|
post_install_message:
|
@@ -55,4 +91,6 @@ signing_key:
|
|
55
91
|
specification_version: 3
|
56
92
|
summary: A Gem helps pick 6 digits out of 45.
|
57
93
|
test_files:
|
94
|
+
- spec/six45/seeds_spec.rb
|
58
95
|
- spec/six45_spec.rb
|
96
|
+
- spec/spec_helper.rb
|