rdgc-dm 0.1.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.
@@ -0,0 +1,153 @@
1
+ # coding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
3
+
4
+ include RDGC::Util
5
+
6
+ describe RDGC::Util::RandomUtil do
7
+
8
+ it "bool_rand provides true or false" do
9
+ 100.times do
10
+ [true, false].should be_include(bool_rand)
11
+ end
12
+ end
13
+
14
+ describe "range_rand provides s_val <= val <= e_val" do
15
+
16
+ it "give s_val and e_val" do
17
+ s_val = 1
18
+ e_val = 10
19
+
20
+ 100.times do
21
+ ret = range_rand(s_val, e_val)
22
+ ret.should >= s_val
23
+ ret.should <= e_val
24
+ end
25
+ end
26
+
27
+ it "return s_val if s_val > e_val" do
28
+ s_val = 15
29
+ e_val = 1
30
+
31
+ 100.times do
32
+ ret = range_rand(s_val, e_val)
33
+ ret.should == s_val
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ describe "select_rand provides hash key at random" do
40
+
41
+ it "select random key" do
42
+ hash = {:k1 => 10, :k2 => 5, :k3 => 3}
43
+ expect = [:k1, :k2, :k3]
44
+
45
+ 100.times do
46
+ ret = select_rand(hash)
47
+ expect.should be_include(ret)
48
+ end
49
+ end
50
+
51
+ it "never return key if value = 0" do
52
+ hash = {:k1 => 1, :k2 => 1, :k3 => 0}
53
+ expect = [:k1, :k2]
54
+
55
+ 100.times do
56
+ ret = select_rand(hash)
57
+ expect.should be_include(ret)
58
+ end
59
+ end
60
+
61
+ it "return nil, if hash is nil or values sum 0" do
62
+ hash = {:k1 => 0, :k2 => 0, :k3 => 0}
63
+
64
+ 10.times do
65
+ ret = select_rand(hash)
66
+ ret.should be_nil
67
+ end
68
+
69
+ 10.times do
70
+ ret = select_rand(nil)
71
+ ret.should be_nil
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+ describe "dice provides value like (n-dice * times)" do
78
+
79
+ it "dice(1, n) behave n-dice" do
80
+ [4, 6, 10].each do |n|
81
+ 100.times do
82
+ val = dice(1, n)
83
+ val.should >= 1
84
+ val.should <= n
85
+ end
86
+ end
87
+ end
88
+
89
+ it "dice(n, 6) behave 6-dice roll n-times" do
90
+ (1..10).each do |n|
91
+ 100.times do
92
+ val = dice(n, 6)
93
+ val.should >= (1 * n)
94
+ val.should <= (6 * n)
95
+ end
96
+ end
97
+ end
98
+
99
+ end
100
+
101
+ describe "define Integer#dice" do
102
+
103
+ it "#d4 #d6 #d10 provides each-dice roll self-times" do
104
+ (1..10).each do |n|
105
+ 100.times do
106
+ d4 = n.d4
107
+ d4.should >= (1 * n)
108
+ d4.should <= (4 * n)
109
+
110
+ d6 = n.d6
111
+ d6.should >= (1 * n)
112
+ d6.should <= (6 * n)
113
+
114
+ d10 = n.d10
115
+ d10.should >= (1 * n)
116
+ d10.should <= (10 * n)
117
+ end
118
+ end
119
+ end
120
+
121
+ it "any number dice can use, example 4.d5, 3.d16" do
122
+ 100.times do
123
+ val1 = 4.d5
124
+ val1.should >= (1 * 4)
125
+ val1.should <= (5 * 4)
126
+
127
+ val2 = 3.d16
128
+ val2.should >= (1 * 3)
129
+ val2.should <= (16 * 3)
130
+ end
131
+ end
132
+
133
+ end
134
+
135
+ describe "define Array#pickup!" do
136
+
137
+ it "#pickup! shift random value in Array" do
138
+ array = [1, 2, 3, 4, 5]
139
+ list = array.dup
140
+
141
+ array.size.times do |i|
142
+ ret = list.pickup!
143
+ array.should be_include(ret)
144
+ list.should_not be_include(ret)
145
+ list.size.should == array.size - (i+1)
146
+ end
147
+
148
+ list.should be_empty
149
+ end
150
+
151
+ end
152
+
153
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'rdgc-dm'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+
7
+ include RDGC
8
+
9
+ Spec::Runner.configure do |config|
10
+
11
+ end
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rdgc-dm
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - parrot_studio
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-04-01 00:00:00 +09:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 2
30
+ - 9
31
+ version: 1.2.9
32
+ type: :development
33
+ version_requirements: *id001
34
+ description: " This gem is part of RDGC - Ruby(Random) Dungeon Game Core.\n RDGC is core of random dungeon game (like rogue), make dungeon, manage mnsters etc.\n"
35
+ email: parrot@users.sourceforge.jp
36
+ executables: []
37
+
38
+ extensions: []
39
+
40
+ extra_rdoc_files:
41
+ - LICENSE
42
+ - README.rdoc
43
+ files:
44
+ - .document
45
+ - .gitignore
46
+ - LICENSE
47
+ - README.rdoc
48
+ - Rakefile
49
+ - VERSION
50
+ - lib/rdgc-dm.rb
51
+ - lib/rdgc/maker/divide_dungeon_maker.rb
52
+ - lib/rdgc/maker/divide_temp_block.rb
53
+ - lib/rdgc/maker/dungeon_maker.rb
54
+ - lib/rdgc/maker/temp_block.rb
55
+ - lib/rdgc/map/area.rb
56
+ - lib/rdgc/map/block.rb
57
+ - lib/rdgc/map/board.rb
58
+ - lib/rdgc/map/road.rb
59
+ - lib/rdgc/map/room.rb
60
+ - lib/rdgc/map/tile.rb
61
+ - lib/rdgc/map/tile_type.rb
62
+ - lib/rdgc/util/config.rb
63
+ - lib/rdgc/util/random_util.rb
64
+ - rdgc-dm.gemspec
65
+ - spec/rdgc/maker/01_temp_block_spec.rb
66
+ - spec/rdgc/maker/02_divide_temp_block_spec.rb
67
+ - spec/rdgc/maker/03_divide_dungeon_maker_divide_spec.rb
68
+ - spec/rdgc/maker/04_divide_dungeon_maker_create_spec.rb
69
+ - spec/rdgc/map/01_tile_spec.rb
70
+ - spec/rdgc/map/02_area_spec.rb
71
+ - spec/rdgc/map/03_road_spec.rb
72
+ - spec/rdgc/map/04_room_spec.rb
73
+ - spec/rdgc/map/05_block_spec.rb
74
+ - spec/rdgc/map/06_board_spec.rb
75
+ - spec/rdgc/util/01_config_spec.rb
76
+ - spec/rdgc/util/02_random_util_spec.rb
77
+ - spec/spec.opts
78
+ - spec/spec_helper.rb
79
+ has_rdoc: true
80
+ homepage: http://github.com/parrot-studio/rdgc-dm
81
+ licenses: []
82
+
83
+ post_install_message:
84
+ rdoc_options:
85
+ - --charset=UTF-8
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ segments:
93
+ - 1
94
+ - 8
95
+ - 7
96
+ version: 1.8.7
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ requirements: []
105
+
106
+ rubyforge_project:
107
+ rubygems_version: 1.3.6
108
+ signing_key:
109
+ specification_version: 3
110
+ summary: Random Dungeon Maker from RDGC
111
+ test_files:
112
+ - spec/spec_helper.rb
113
+ - spec/rdgc/util/02_random_util_spec.rb
114
+ - spec/rdgc/util/01_config_spec.rb
115
+ - spec/rdgc/map/04_room_spec.rb
116
+ - spec/rdgc/map/06_board_spec.rb
117
+ - spec/rdgc/map/01_tile_spec.rb
118
+ - spec/rdgc/map/03_road_spec.rb
119
+ - spec/rdgc/map/05_block_spec.rb
120
+ - spec/rdgc/map/02_area_spec.rb
121
+ - spec/rdgc/maker/02_divide_temp_block_spec.rb
122
+ - spec/rdgc/maker/01_temp_block_spec.rb
123
+ - spec/rdgc/maker/04_divide_dungeon_maker_create_spec.rb
124
+ - spec/rdgc/maker/03_divide_dungeon_maker_divide_spec.rb