facets 2.2.1 → 2.3.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.
- data/CHANGES +6 -0
- data/NOTES +14 -1
- data/Rakefile +26 -0
- data/demo/bench/general/bench_calls.rb +74 -0
- data/demo/bench/general/bench_includes.rb +25 -0
- data/demo/bench/general/bench_methods.rb +17 -0
- data/demo/bench/general/bench_pathname.rb +24 -0
- data/demo/bench/general/bench_range.rb +64 -0
- data/demo/bench/general/bench_return.rb +56 -0
- data/demo/bench/general/bench_yeild.rb +75 -0
- data/lib/{more → class}/facets/association.rb +0 -0
- data/lib/{more → class}/facets/autoarray.rb +0 -0
- data/lib/{more → class}/facets/basicobject.rb +0 -0
- data/lib/{more → class}/facets/buildingblock.rb +0 -44
- data/lib/{more → class}/facets/cachedelegator.rb +3 -0
- data/lib/{more → class}/facets/coroutine.rb +0 -56
- data/lib/{more → class}/facets/dictionary.rb +0 -0
- data/lib/{more → class}/facets/downloader.rb +0 -0
- data/lib/{more → class}/facets/filelist.rb +0 -0
- data/lib/{more → class}/facets/fileshell.rb +0 -0
- data/lib/{more → class}/facets/hashbuilder.rb +0 -0
- data/lib/{more → class}/facets/heap.rb +0 -0
- data/lib/{more → class}/facets/infinity.rb +0 -46
- data/lib/{more → class}/facets/interval.rb +0 -0
- data/lib/{more → class}/facets/ioredirect.rb +0 -0
- data/lib/{more → class}/facets/linkedlist.rb +0 -42
- data/lib/{more → class}/facets/lrucache.rb +0 -23
- data/lib/{more → class}/facets/minitar.rb +0 -0
- data/lib/{more → class}/facets/nackclass.rb +0 -0
- data/lib/{more → class}/facets/nullclass.rb +0 -0
- data/lib/{more → class}/facets/opencascade.rb +0 -70
- data/lib/{more → class}/facets/opencollection.rb +0 -0
- data/lib/class/facets/openhash.rb +41 -0
- data/lib/{more → class}/facets/openobject.rb +0 -121
- data/lib/{more → class}/facets/orderedhash.rb +0 -0
- data/lib/{more → class}/facets/pathlist.rb +0 -0
- data/lib/{more → class}/facets/pool.rb +0 -0
- data/lib/{more → class}/facets/pqueue.rb +0 -0
- data/lib/{more → class}/facets/progressbar.rb +0 -0
- data/lib/{more → class}/facets/recorder.rb +0 -40
- data/lib/{more → class}/facets/reference.rb +0 -0
- data/lib/{more → class}/facets/rwdelegator.rb +0 -0
- data/lib/{more → class}/facets/semaphore.rb +0 -0
- data/lib/{more → class}/facets/syncarray.rb +0 -24
- data/lib/{more → class}/facets/synchash.rb +1 -25
- data/lib/{more → class}/facets/timer.rb +0 -62
- data/lib/{more → class}/facets/tuple.rb +0 -60
- data/lib/{more → class}/facets/version.rb +0 -0
- data/lib/core/facets/dir/multiglob.rb +20 -5
- data/lib/core/facets/enumerable/cartesian.rb +2 -2
- data/lib/core/facets/enumerable/combination.rb +9 -1
- data/lib/core/facets/kernel/object.rb +1 -1
- data/lib/{more → mixin}/facets/binreadable.rb +0 -62
- data/lib/{more → mixin}/facets/buildable.rb +0 -48
- data/lib/mixin/facets/cloneable.rb +90 -0
- data/lib/{more → mixin}/facets/enumerablepass.rb +0 -81
- data/lib/{more → mixin}/facets/expirable.rb +0 -0
- data/lib/{more → mixin}/facets/fileable.rb +0 -0
- data/lib/{more → mixin}/facets/instantiable.rb +0 -30
- data/lib/{more → mixin}/facets/multiton.rb +0 -0
- data/lib/{more → mixin}/facets/registerable.rb +0 -0
- data/lib/mixin/facets/tasksystem.rb +350 -0
- data/lib/{more → mixin}/facets/uninheritable.rb +1 -39
- data/lib/{more → mixin}/facets/validation.rb +0 -0
- data/lib/more/facets/arguments.rb +0 -66
- data/lib/more/facets/attributes.rb +0 -35
- data/lib/more/facets/bbcode.rb +1 -31
- data/lib/more/facets/bytes.rb +0 -80
- data/lib/more/facets/class_extension.rb +0 -66
- data/lib/more/facets/classmethods.rb +0 -64
- data/lib/more/facets/compare_on.rb +0 -52
- data/lib/more/facets/curry.rb +0 -29
- data/lib/more/facets/cut.rb +0 -27
- data/lib/more/facets/date.rb +0 -54
- data/lib/more/facets/dependency.rb +0 -70
- data/lib/more/facets/elementor.rb +0 -67
- data/lib/more/facets/getoptlong.rb +0 -30
- data/lib/more/facets/{hash_keyize.rb → hash/keyize.rb} +0 -0
- data/lib/more/facets/inheritor.rb +0 -150
- data/lib/more/facets/instantise.rb +0 -41
- data/lib/more/facets/let.rb +0 -20
- data/lib/more/facets/memoize.rb +0 -45
- data/lib/more/facets/multipliers.rb +0 -110
- data/lib/more/facets/ostruct.rb +0 -124
- data/lib/more/facets/random.rb +0 -153
- data/lib/more/facets/rbconfig.rb +55 -0
- data/lib/more/facets/set.rb +27 -0
- data/lib/more/facets/snapshot.rb +0 -30
- data/lib/more/facets/stylize.rb +0 -147
- data/lib/more/facets/times.rb +0 -98
- data/lib/more/facets/tracepoint.rb +194 -0
- data/lib/more/facets/typecast.rb +0 -63
- data/lib/more/facets/ziputils.rb +7 -0
- data/log/Changelog-0.txt +239 -0
- data/log/Changelog-1.txt +450 -0
- data/log/Changelog.txt +841 -0
- data/log/Fixme.txt +18 -0
- data/log/Testlog.txt +188 -0
- data/log/Todo.txt +326 -0
- data/meta/MANIFEST +1 -1
- data/meta/VERSION +1 -0
- data/meta/authors +48 -0
- data/meta/description +8 -0
- data/meta/project.yaml +11 -5
- data/task/install +4 -2
- data/task/rdoc +5 -0
- data/task/test +40 -0
- data/test/{unit → class}/test_association.rb +0 -0
- data/test/{unit → class}/test_autoarray.rb +0 -0
- data/test/{unit → class}/test_basicobject.rb +0 -0
- data/test/{unit → class}/test_buildingblock.rb +1 -0
- data/test/{unit → class}/test_coroutine.rb +0 -0
- data/test/{unit → class}/test_dictionary.rb +0 -0
- data/test/{unit → class}/test_infinity.rb +0 -0
- data/test/{unit → class}/test_interval.rb +0 -0
- data/test/{unit → class}/test_linkedlist.rb +1 -1
- data/test/{unit → class}/test_lrucache.rb +3 -0
- data/test/{unit → class}/test_opencascade.rb +0 -0
- data/test/{unit → class}/test_openobject.rb +0 -0
- data/test/{unit → class}/test_recorder.rb +0 -1
- data/test/{unit → class}/test_syncarray.rb +2 -4
- data/test/{unit → class}/test_synchash.rb +2 -4
- data/test/{unit → class}/test_timer.rb +0 -1
- data/test/{unit → class}/test_tuple.rb +0 -0
- data/test/{unit → core}/array/test_delete.rb +0 -0
- data/test/{unit → core}/array/test_indexable.rb +0 -0
- data/test/{unit → core}/array/test_merge.rb +0 -0
- data/test/{unit → core}/array/test_only.rb +0 -0
- data/test/{unit → core}/array/test_pad.rb +0 -0
- data/test/{unit → core}/array/test_rotate.rb +0 -0
- data/test/{unit → core}/array/test_select.rb +0 -0
- data/test/{unit → core}/array/test_stackable.rb +0 -0
- data/test/{unit/binding/test_cflow.rb → core/binding/test_caller.rb} +2 -2
- data/test/{unit → core}/binding/test_defined.rb +0 -0
- data/test/{unit → core}/binding/test_eval.rb +0 -0
- data/test/{unit → core}/binding/test_here.rb +0 -0
- data/test/{unit → core}/binding/test_self.rb +0 -0
- data/test/{unit → core}/binding/test_vars.rb +0 -0
- data/test/{unit → core}/class/test_descendents.rb +0 -0
- data/test/{unit → core}/class/test_initializer.rb +0 -0
- data/test/{unit → core}/class/test_remove_descendents.rb +0 -0
- data/test/{unit → core}/comparable/test_bound.rb +0 -0
- data/test/{unit → core}/comparable/test_cmp.rb +0 -0
- data/test/{unit → core}/dir/test_parent.rb +0 -0
- data/test/{unit → core}/dir/test_recurse.rb +0 -0
- data/test/{unit → core}/dir/test_traverse.rb +0 -0
- data/test/{unit → core}/enumerable/test_cartesian.rb +0 -0
- data/test/{unit → core}/enumerable/test_collect.rb +0 -0
- data/test/{unit → core}/enumerable/test_combination.rb +0 -0
- data/test/{unit → core}/enumerable/test_count.rb +0 -0
- data/test/{unit → core}/enumerable/test_each.rb +0 -0
- data/test/{unit → core}/enumerable/test_mash.rb +0 -0
- data/test/{unit → core}/enumerable/test_permutation.rb +0 -0
- data/test/{unit → core}/enumerable/test_probability.rb +0 -0
- data/test/{unit → core}/enumerable/test_split.rb +0 -0
- data/test/{unit → core}/exception/test_detail.rb +0 -0
- data/test/{unit → core}/file/test_null.rb +0 -0
- data/test/{unit → core}/file/test_read.rb +0 -0
- data/test/{unit → core}/file/test_sanitize.rb +0 -0
- data/test/{unit → core}/file/test_split_all.rb +0 -0
- data/test/{unit → core}/file/test_write.rb +0 -0
- data/test/{unit → core}/filetest/test_root.rb +0 -0
- data/test/{unit → core}/hash/test_alias.rb +0 -0
- data/test/{unit → core}/hash/test_at.rb +0 -0
- data/test/{unit → core}/hash/test_autonew.rb +0 -0
- data/test/core/hash/test_collate.rb +33 -0
- data/test/{unit → core}/hash/test_delete.rb +0 -0
- data/test/{unit → core}/hash/test_each_with_key.rb +0 -0
- data/test/{unit → core}/hash/test_has_keys.rb +0 -0
- data/test/{unit → core}/hash/test_insert.rb +0 -0
- data/test/{unit → core}/hash/test_inverse.rb +0 -0
- data/test/{unit → core}/hash/test_op.rb +0 -0
- data/test/{unit → core}/hash/test_rekey.rb +0 -0
- data/test/{unit → core}/hash/test_reverse_merge.rb +0 -0
- data/test/{unit → core}/hash/test_select.rb +0 -0
- data/test/{unit → core}/hash/test_swap.rb +0 -0
- data/test/{unit → core}/hash/test_traverse.rb +0 -0
- data/test/{unit → core}/hash/test_update.rb +0 -0
- data/test/{unit → core}/hash/test_weave.rb +0 -0
- data/test/{unit → core}/hash/test_zipnew.rb +0 -0
- data/test/{unit → core}/integer/test_bitmask.rb +0 -0
- data/test/{unit → core}/integer/test_factorial.rb +0 -0
- data/test/{unit → core}/integer/test_multiple.rb +0 -0
- data/test/{unit → core}/integer/test_of.rb +0 -0
- data/test/{unit → core}/kernel/test_callstack.rb +0 -0
- data/test/{unit → core}/kernel/test_constant.rb +0 -0
- data/test/{unit → core}/kernel/test_deepcopy.rb +0 -0
- data/test/{unit → core}/kernel/test_instance.rb +0 -0
- data/test/{unit → core}/kernel/test_metaid.rb +0 -0
- data/test/{unit → core}/kernel/test_object.rb +1 -1
- data/test/{unit → core}/kernel/test_populate.rb +0 -0
- data/test/{unit → core}/kernel/test_report.rb +0 -0
- data/test/{unit → core}/kernel/test_returning.rb +0 -0
- data/test/{unit → core}/kernel/test_silence.rb +0 -0
- data/test/{unit → core}/kernel/test_super.rb +0 -0
- data/test/{unit → core}/kernel/test_tap.rb +0 -0
- data/test/{unit → core}/kernel/test_val.rb +0 -0
- data/test/{unit → core}/kernel/test_withattr.rb +0 -0
- data/test/{unit → core}/matchdata/test_match.rb +0 -0
- data/test/{unit → core}/matchdata/test_matchset.rb +0 -0
- data/test/{unit → core}/module/test_abstract.rb +0 -0
- data/test/{unit → core}/module/test_alias.rb +0 -0
- data/test/{unit → core}/module/test_cattr.rb +0 -0
- data/test/{unit → core}/module/test_clone.rb +0 -0
- data/test/{unit → core}/module/test_include.rb +0 -0
- data/test/{unit → core}/module/test_modify.rb +0 -0
- data/test/{unit → core}/module/test_name.rb +0 -0
- data/test/{unit → core}/module/test_traits.rb +0 -0
- data/test/{unit → core}/numeric/test_round.rb +0 -0
- data/test/{unit → core}/proc/test_bind.rb +0 -0
- data/test/{unit → core}/proc/test_compose.rb +0 -0
- data/test/{unit → core}/range/test_combine.rb +0 -0
- data/test/{unit → core}/range/test_overlap.rb +0 -0
- data/test/{unit → core}/regexp/test_arity.rb +0 -0
- data/test/{unit → core}/string/test_align.rb +0 -0
- data/test/{unit → core}/string/test_blank.rb +0 -0
- data/test/{unit → core}/string/test_bracket.rb +0 -0
- data/test/{unit → core}/string/test_case.rb +0 -0
- data/test/{unit → core}/string/test_crypt.rb +0 -0
- data/test/{unit → core}/string/test_filter.rb +0 -0
- data/test/{unit → core}/string/test_indexable.rb +0 -0
- data/test/{unit → core}/string/test_interpolate.rb +0 -0
- data/test/{unit → core}/string/test_natcmp.rb +0 -0
- data/test/{unit → core}/string/test_nchar.rb +0 -0
- data/test/{unit → core}/string/test_op.rb +0 -0
- data/test/{unit → core}/string/test_partitions.rb +0 -0
- data/test/{unit → core}/string/test_range.rb +0 -0
- data/test/{unit → core}/string/test_regesc.rb +0 -0
- data/test/{unit → core}/string/test_scan.rb +0 -0
- data/test/{unit → core}/string/test_stackable.rb +0 -0
- data/test/{unit → core}/string/test_tabs.rb +0 -0
- data/test/{unit → core}/string/test_wrap.rb +0 -0
- data/test/{unit → core}/symbol/test_chomp.rb +0 -0
- data/test/{unit → core}/symbol/test_generate.rb +0 -0
- data/test/{unit → core}/symbol/test_not.rb +0 -0
- data/test/{unit → core}/symbol/test_shadow.rb +0 -0
- data/test/{unit → core}/symbol/test_succ.rb +0 -0
- data/test/{unit → core}/symbol/test_to_proc.rb +0 -0
- data/test/{unit → core}/test_1stclassmethod.rb +0 -0
- data/test/{unit → core}/test_boolean.rb +0 -0
- data/test/{unit → core}/test_conversion.rb +0 -0
- data/test/{unit → core}/test_functor.rb +0 -0
- data/test/{unit → core}/time/test_change.rb +0 -0
- data/test/{unit → core}/time/test_elapse.rb +0 -0
- data/test/{unit → core}/time/test_stamp.rb +0 -0
- data/test/{unit → mixin}/test_binreadable.rb +0 -0
- data/test/{unit → mixin}/test_buildable.rb +1 -0
- data/test/mixin/test_cloneable.rb +41 -0
- data/test/{unit → mixin}/test_enumerablepass.rb +0 -0
- data/test/{unit → mixin}/test_instantiable.rb +2 -1
- data/test/{unit → mixin}/test_multiton.rb +0 -0
- data/test/{unit → mixin}/test_uninheritable.rb +1 -2
- data/test/{unit → more/hash}/test_keyize.rb +1 -1
- data/test/{unit → more}/test_advice.rb +0 -0
- data/test/{unit → more}/test_annotations.rb +0 -0
- data/test/{unit → more}/test_ansicode.rb +0 -0
- data/test/{unit → more}/test_aop.rb +0 -0
- data/test/{unit → more}/test_arguments.rb +1 -0
- data/test/{unit → more}/test_attributes.rb +2 -2
- data/test/{unit → more}/test_bbcode.rb +1 -0
- data/test/{unit → more}/test_bytes.rb +1 -0
- data/test/{unit → more}/test_class_extension.rb +2 -1
- data/test/{unit → more}/test_classmethods.rb +2 -1
- data/test/{unit → more}/test_compare_on.rb +0 -1
- data/test/{unit → more}/test_continuation.rb +0 -0
- data/test/{unit → more}/test_crypt.rb +0 -0
- data/test/{unit → more}/test_curry.rb +1 -0
- data/test/{unit → more}/test_cut.rb +2 -1
- data/test/{unit → more}/test_date.rb +1 -1
- data/test/{unit → more}/test_dependency.rb +2 -2
- data/test/{unit → more}/test_elementor.rb +1 -1
- data/test/{unit → more}/test_getoptlong.rb +1 -0
- data/test/{unit → more}/test_inheritor.rb +1 -1
- data/test/{unit → more}/test_instantise.rb +2 -1
- data/test/{unit → more}/test_interface.rb +0 -0
- data/test/{unit → more}/test_let.rb +0 -1
- data/test/{unit → more}/test_memoize.rb +2 -3
- data/test/{unit → more}/test_multipliers.rb +1 -1
- data/test/{unit → more}/test_namespace.rb +0 -0
- data/test/{unit → more}/test_ostruct.rb +0 -0
- data/test/{unit → more}/test_overload.rb +0 -0
- data/test/{unit → more}/test_paramix.rb +0 -0
- data/test/{unit → more}/test_prototype.rb +0 -0
- data/test/more/test_random.rb +146 -0
- data/test/{unit → more}/test_snapshot.rb +0 -3
- data/test/{unit → more}/test_stylize.rb +1 -2
- data/test/{unit → more}/test_thread.rb +0 -0
- data/test/{unit → more}/test_times.rb +2 -2
- data/test/{unit → more}/test_typecast.rb +0 -3
- metadata +1117 -1098
- data/lib/more/facets/cloneable.rb +0 -75
- data/log/changelog.txt +0 -0
- data/meta/facets.roll +0 -4
- data/meta/google_ad.html +0 -15
- data/meta/icli.yaml +0 -17
- data/task/changes +0 -29
- data/task/clean +0 -17
- data/task/clobber/package +0 -10
- data/task/log +0 -17
- data/task/prepare +0 -7
- data/task/publish +0 -43
- data/task/release +0 -10
- data/task/stamp +0 -33
- data/task/stats +0 -138
- data/task/test/cross +0 -309
- data/task/test/each +0 -42
- data/task/test/load +0 -30
- data/task/test/pairs +0 -50
- data/task/test/solo +0 -294
- data/task/test/syntax +0 -31
- data/task/test/whole +0 -34
- data/test/unit/hash/test_collate.rb +0 -31
- data/test/unit/test_random.rb +0 -149
|
@@ -118,59 +118,3 @@ class Coroutine
|
|
|
118
118
|
|
|
119
119
|
end
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
# _____ _
|
|
124
|
-
# |_ _|__ ___| |_
|
|
125
|
-
# | |/ _ \/ __| __|
|
|
126
|
-
# | | __/\__ \ |_
|
|
127
|
-
# |_|\___||___/\__|
|
|
128
|
-
#
|
|
129
|
-
|
|
130
|
-
=begin testing
|
|
131
|
-
|
|
132
|
-
require 'test/unit'
|
|
133
|
-
|
|
134
|
-
class TC_Coroutine < Test::Unit::TestCase
|
|
135
|
-
|
|
136
|
-
def test_run
|
|
137
|
-
assert_nothing_raised {
|
|
138
|
-
|
|
139
|
-
count = 100
|
|
140
|
-
input = (1..count).map { (rand * 10000).round.to_f / 100 }
|
|
141
|
-
|
|
142
|
-
@producer = Coroutine.new do |me|
|
|
143
|
-
loop do
|
|
144
|
-
1.upto(6) do
|
|
145
|
-
me[:last_input] = input.shift
|
|
146
|
-
me.resume(@printer)
|
|
147
|
-
end
|
|
148
|
-
input.shift # discard every seventh input number
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
@printer = Coroutine.new do |me|
|
|
153
|
-
loop do
|
|
154
|
-
1.upto(8) do
|
|
155
|
-
me.resume(@producer)
|
|
156
|
-
if @producer[:last_input]
|
|
157
|
-
@producer[:last_input] = nil
|
|
158
|
-
end
|
|
159
|
-
me.resume(@controller)
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
@controller = Coroutine.new do |me|
|
|
165
|
-
until input.empty? do
|
|
166
|
-
me.resume(@printer)
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
@controller.run
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
=end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -181,49 +181,3 @@ Inf = INFINITY
|
|
|
181
181
|
PosInf = +INFINITY
|
|
182
182
|
NegInf = -INFINITY
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
# _____ _
|
|
186
|
-
# |_ _|__ ___| |_
|
|
187
|
-
# | |/ _ \/ __| __|
|
|
188
|
-
# | | __/\__ \ |_
|
|
189
|
-
# |_|\___||___/\__|
|
|
190
|
-
#
|
|
191
|
-
|
|
192
|
-
=begin testing
|
|
193
|
-
|
|
194
|
-
require 'test/unit'
|
|
195
|
-
|
|
196
|
-
class GeneralTest < Test::Unit::TestCase
|
|
197
|
-
|
|
198
|
-
def test_pos
|
|
199
|
-
assert_equal((1.0/0), INFINITY.to_f)
|
|
200
|
-
assert_equal(1, INFINITY<=>5)
|
|
201
|
-
assert_equal(1, INFINITY<=>"a")
|
|
202
|
-
assert_equal("PosInf", INFINITY.to_s)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
def test_neg
|
|
206
|
-
assert_equal((-1.0/0), -INFINITY.to_f)
|
|
207
|
-
assert_equal(-1, -INFINITY<=>5)
|
|
208
|
-
assert_equal(-1, -INFINITY<=>"a")
|
|
209
|
-
assert_equal("NegInf", (-INFINITY).to_s)
|
|
210
|
-
end
|
|
211
|
-
|
|
212
|
-
def test_ord
|
|
213
|
-
assert_equal((-1.0/0), -INFINITY.to_f)
|
|
214
|
-
assert_equal(-1, 5<=>INFINITY)
|
|
215
|
-
assert_equal(1, 5<=>-INFINITY)
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
def test_eq
|
|
219
|
-
assert_equal(Inf, Inf)
|
|
220
|
-
assert_equal(-Inf, -Inf)
|
|
221
|
-
assert_equal(PosInf, PosInf)
|
|
222
|
-
assert_equal(NegInf, NegInf)
|
|
223
|
-
assert_not_equal(NaN, NaN)
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
end
|
|
227
|
-
|
|
228
|
-
=end
|
|
229
|
-
|
|
File without changes
|
|
File without changes
|
|
@@ -212,45 +212,3 @@ class LinkedList
|
|
|
212
212
|
|
|
213
213
|
end
|
|
214
214
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
=begin test
|
|
218
|
-
|
|
219
|
-
require 'test/unit'
|
|
220
|
-
|
|
221
|
-
class TC_LinkedList < Test::Unit::TestCase
|
|
222
|
-
|
|
223
|
-
@cache
|
|
224
|
-
|
|
225
|
-
def test_all
|
|
226
|
-
ll = nil
|
|
227
|
-
assert_nothing_raised('Failed while creating an LinkedList object.') { ll = LinkedList.new }
|
|
228
|
-
assert_kind_of(LinkedList,ll,'Strangely, the created object does not appear to be an LinkedList.')
|
|
229
|
-
|
|
230
|
-
assert_nothing_raised('Failed while pushing a value onto the linked list.') { ll.push 'a' }
|
|
231
|
-
ll.push 'b'
|
|
232
|
-
assert_nothing_raised('Failed while assigning a key/value to the linked list.') { ll['c'] = 3 }
|
|
233
|
-
assert_equal(3,ll.first, 'First element in the linked list appears to be the wrong one.')
|
|
234
|
-
assert_equal('b',ll.last, 'Last element in the linked list appears to be the wrong one.')
|
|
235
|
-
assert_nothing_raised('Failed while unshifting a value onto the linked list.') { ll.unshift 'd' }
|
|
236
|
-
assert_equal('d',ll.first, 'The prior unshift apparently failed.')
|
|
237
|
-
assert_equal('a',ll['a'], 'Accessing an element by key failed.')
|
|
238
|
-
assert_equal(4,ll.length, 'The length of the linked list appears to be incorrect.')
|
|
239
|
-
d = nil
|
|
240
|
-
assert_nothing_raised('Failed while deleting an element from the middle of the list.') { d = ll.delete('a') }
|
|
241
|
-
assert_equal('a',d, 'The prior delete returned the wrong value for the deleted object.')
|
|
242
|
-
assert_equal(3,ll.length, 'The length of the linked list appears to be incorrect following the prior deletion.')
|
|
243
|
-
assert_nothing_raised('Failed while popping an element from the end of the list.') { d = ll.pop }
|
|
244
|
-
assert_equal('b',d, 'The prior pop returned the wrong value.')
|
|
245
|
-
assert_equal(2,ll.length, 'The length of the linked list appears to be incorrect following the prior pop.')
|
|
246
|
-
assert_equal(['d','c'],ll.queue, 'The queue of keys for the list is incorrect.')
|
|
247
|
-
assert_equal(['d',3],ll.to_a, 'Converting the list to an array (of values) seems to have failed.')
|
|
248
|
-
expected = [['c',3],['d','d']]
|
|
249
|
-
ll.each do |k,v|
|
|
250
|
-
e = expected.pop
|
|
251
|
-
assert_equal(e,[k,v], 'While iterates over the list via each(), the value from this iteration is not what was expected.')
|
|
252
|
-
end
|
|
253
|
-
end
|
|
254
|
-
end
|
|
255
|
-
|
|
256
|
-
=end
|
|
@@ -154,26 +154,3 @@ class LRUCache < Hash
|
|
|
154
154
|
|
|
155
155
|
end
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
# _____ _
|
|
160
|
-
# |_ _|__ ___| |_
|
|
161
|
-
# | |/ _ \/ __| __|
|
|
162
|
-
# | | __/\__ \ |_
|
|
163
|
-
# |_|\___||___/\__|
|
|
164
|
-
#
|
|
165
|
-
|
|
166
|
-
# TODO
|
|
167
|
-
|
|
168
|
-
=begin testing
|
|
169
|
-
|
|
170
|
-
require 'test/unit'
|
|
171
|
-
|
|
172
|
-
class TC_LRUCache < Test::Unit::TestCase
|
|
173
|
-
|
|
174
|
-
def test_01
|
|
175
|
-
end
|
|
176
|
-
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
=end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -90,73 +90,3 @@ class OpenCascade < OpenObject
|
|
|
90
90
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
# _____ _
|
|
95
|
-
# |_ _|__ ___| |_
|
|
96
|
-
# | |/ _ \/ __| __|
|
|
97
|
-
# | | __/\__ \ |_
|
|
98
|
-
# |_|\___||___/\__|
|
|
99
|
-
#
|
|
100
|
-
|
|
101
|
-
=begin testing
|
|
102
|
-
|
|
103
|
-
require 'test/unit'
|
|
104
|
-
|
|
105
|
-
class TestOpenCascade1 < Test::Unit::TestCase
|
|
106
|
-
|
|
107
|
-
def test_1_01
|
|
108
|
-
o = OpenCascade[:a=>1,:b=>2]
|
|
109
|
-
assert_equal( 1, o.a )
|
|
110
|
-
assert_equal( 2, o.b )
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def test_1_02
|
|
114
|
-
o = OpenCascade[:a=>1,:b=>2,:c=>{:x=>9}]
|
|
115
|
-
assert_equal( 9, o.c.x )
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def test_1_03
|
|
119
|
-
f0 = OpenCascade.new
|
|
120
|
-
f0[:a] = 1
|
|
121
|
-
assert_equal( [[:a,1]], f0.to_a )
|
|
122
|
-
assert_equal( {:a=>1}, f0.to_h )
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def test_1_04
|
|
126
|
-
f0 = OpenCascade[:a=>1]
|
|
127
|
-
f0[:b] = 2
|
|
128
|
-
assert_equal( {:a=>1,:b=>2}, f0.to_h )
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
class TestOpenCascade2 < Test::Unit::TestCase
|
|
133
|
-
|
|
134
|
-
def test_02_001
|
|
135
|
-
f0 = OpenCascade[:f0=>"f0"]
|
|
136
|
-
h0 = { :h0=>"h0" }
|
|
137
|
-
assert_equal( OpenCascade[:f0=>"f0", :h0=>"h0"], f0.send(:merge,h0) )
|
|
138
|
-
assert_equal( {:f0=>"f0", :h0=>"h0"}, h0.merge( f0 ) )
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
def test_02_002
|
|
142
|
-
f1 = OpenCascade[:f1=>"f1"]
|
|
143
|
-
h1 = { :h1=>"h1" }
|
|
144
|
-
f1.send(:update, h1)
|
|
145
|
-
h1.update( f1 )
|
|
146
|
-
assert_equal( OpenCascade[:f1=>"f1", :h1=>"h1"], f1 )
|
|
147
|
-
assert_equal( {:f1=>"f1", :h1=>"h1"}, h1 )
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
class TestOpenCascade3 < Test::Unit::TestCase
|
|
152
|
-
|
|
153
|
-
def test_01_001
|
|
154
|
-
fo = OpenCascade.new
|
|
155
|
-
99.times{ |i| fo.__send__( "n#{i}=", 1 ) }
|
|
156
|
-
99.times{ |i|
|
|
157
|
-
assert_equal( 1, fo.__send__( "n#{i}" ) )
|
|
158
|
-
}
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
=end
|
|
File without changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# TITLE:
|
|
2
|
+
#
|
|
3
|
+
# OpenHash
|
|
4
|
+
#
|
|
5
|
+
# SYNOPSIS:
|
|
6
|
+
#
|
|
7
|
+
# OpenHash is akin to an OpenStruct or an OpenObject,
|
|
8
|
+
# but it is much simplier in nature. It is a hash with
|
|
9
|
+
# an method_missing definition that routes to [] and []=.
|
|
10
|
+
#
|
|
11
|
+
# AUTHOR:
|
|
12
|
+
# - Trans
|
|
13
|
+
|
|
14
|
+
# = OpenHash
|
|
15
|
+
#
|
|
16
|
+
# OpenHash is akin to an OpenStruct or an OpenObject,
|
|
17
|
+
# but it is much simplier in nature. It is a hash with
|
|
18
|
+
# an method_missing definition that routes to [] and []=.
|
|
19
|
+
|
|
20
|
+
class OpenHash < Hash
|
|
21
|
+
|
|
22
|
+
# New OpenHash.
|
|
23
|
+
|
|
24
|
+
def initialize(data)
|
|
25
|
+
super()
|
|
26
|
+
update(data)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Route get and set calls.
|
|
30
|
+
|
|
31
|
+
def method_missing(s, *a)
|
|
32
|
+
if s =~ /=$/
|
|
33
|
+
self[s] = a[0]
|
|
34
|
+
elsif a.empty?
|
|
35
|
+
self[s]
|
|
36
|
+
else
|
|
37
|
+
super
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
@@ -239,124 +239,3 @@ class Proc
|
|
|
239
239
|
end
|
|
240
240
|
end
|
|
241
241
|
|
|
242
|
-
|
|
243
|
-
# _____ _
|
|
244
|
-
# |_ _|__ ___| |_
|
|
245
|
-
# | |/ _ \/ __| __|
|
|
246
|
-
# | | __/\__ \ |_
|
|
247
|
-
# |_|\___||___/\__|
|
|
248
|
-
#
|
|
249
|
-
|
|
250
|
-
=begin testing
|
|
251
|
-
|
|
252
|
-
require 'test/unit'
|
|
253
|
-
|
|
254
|
-
class TestOpenObject1 < Test::Unit::TestCase
|
|
255
|
-
|
|
256
|
-
def test_1_01
|
|
257
|
-
o = OpenObject.new
|
|
258
|
-
assert( o.respond_to?(:key?) )
|
|
259
|
-
end
|
|
260
|
-
|
|
261
|
-
def test_1_02
|
|
262
|
-
assert_instance_of( OpenObject, OpenObject[{}] )
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
def test_1_03
|
|
266
|
-
f0 = OpenObject.new
|
|
267
|
-
f0[:a] = 1
|
|
268
|
-
#assert_equal( [1], f0.to_a )
|
|
269
|
-
assert_equal( {:a=>1}, f0.to_h )
|
|
270
|
-
end
|
|
271
|
-
|
|
272
|
-
def test_1_04
|
|
273
|
-
f0 = OpenObject[:a=>1]
|
|
274
|
-
f0[:b] = 2
|
|
275
|
-
assert_equal( {:a=>1,:b=>2}, f0.to_h )
|
|
276
|
-
end
|
|
277
|
-
|
|
278
|
-
def test_1_05
|
|
279
|
-
f0 = OpenObject[:class=>1]
|
|
280
|
-
assert_equal( 1, f0.class )
|
|
281
|
-
end
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
class TestOpenObject2 < Test::Unit::TestCase
|
|
285
|
-
|
|
286
|
-
def test_2_01
|
|
287
|
-
f0 = OpenObject[:f0=>"f0"]
|
|
288
|
-
h0 = { :h0=>"h0" }
|
|
289
|
-
assert_equal( OpenObject[:f0=>"f0", :h0=>"h0"], f0.send(:merge,h0) )
|
|
290
|
-
assert_equal( {:f0=>"f0", :h0=>"h0"}, h0.merge( f0 ) )
|
|
291
|
-
end
|
|
292
|
-
|
|
293
|
-
def test_2_02
|
|
294
|
-
f1 = OpenObject[:f1=>"f1"]
|
|
295
|
-
h1 = { :h1=>"h1" }
|
|
296
|
-
f1.send(:update,h1)
|
|
297
|
-
h1.update( f1 )
|
|
298
|
-
assert_equal( OpenObject[:f1=>"f1", :h1=>"h1"], f1 )
|
|
299
|
-
assert_equal( {:f1=>"f1", :h1=>"h1"}, h1 )
|
|
300
|
-
end
|
|
301
|
-
|
|
302
|
-
def test_2_03
|
|
303
|
-
o = OpenObject[:a=>1,:b=>{:x=>9}]
|
|
304
|
-
assert_equal( 9, o[:b][:x] )
|
|
305
|
-
assert_equal( 9, o.b[:x] )
|
|
306
|
-
end
|
|
307
|
-
|
|
308
|
-
def test_2_04
|
|
309
|
-
o = OpenObject["a"=>1,"b"=>{:x=>9}]
|
|
310
|
-
assert_equal( 1, o["a"] )
|
|
311
|
-
assert_equal( 1, o[:a] )
|
|
312
|
-
assert_equal( {:x=>9}, o["b"] )
|
|
313
|
-
assert_equal( {:x=>9}, o[:b] )
|
|
314
|
-
assert_equal( 9, o["b"][:x] )
|
|
315
|
-
assert_equal( nil, o[:b]["x"] )
|
|
316
|
-
end
|
|
317
|
-
|
|
318
|
-
end
|
|
319
|
-
|
|
320
|
-
class TestOpenObject3 < Test::Unit::TestCase
|
|
321
|
-
def test_3_01
|
|
322
|
-
fo = OpenObject.new
|
|
323
|
-
9.times{ |i| fo.send( "n#{i}=", 1 ) }
|
|
324
|
-
9.times{ |i|
|
|
325
|
-
assert_equal( 1, fo.send( "n#{i}" ) )
|
|
326
|
-
}
|
|
327
|
-
end
|
|
328
|
-
end
|
|
329
|
-
|
|
330
|
-
class TestOpenObject4 < Test::Unit::TestCase
|
|
331
|
-
|
|
332
|
-
def test_4_01
|
|
333
|
-
ho = {}
|
|
334
|
-
fo = OpenObject.new
|
|
335
|
-
5.times{ |i| ho["n#{i}".to_sym]=1 }
|
|
336
|
-
5.times{ |i| fo.send( "n#{i}=", 1 ) }
|
|
337
|
-
assert_equal(ho, fo.to_h)
|
|
338
|
-
end
|
|
339
|
-
|
|
340
|
-
end
|
|
341
|
-
|
|
342
|
-
class TestOpenObject5 < Test::Unit::TestCase
|
|
343
|
-
|
|
344
|
-
def test_5_01
|
|
345
|
-
p = lambda { |x|
|
|
346
|
-
x.word = "Hello"
|
|
347
|
-
}
|
|
348
|
-
o = p.to_openobject
|
|
349
|
-
assert_equal( "Hello", o.word )
|
|
350
|
-
end
|
|
351
|
-
|
|
352
|
-
def test_5_02
|
|
353
|
-
p = lambda { |x|
|
|
354
|
-
x.word = "Hello"
|
|
355
|
-
}
|
|
356
|
-
o = OpenObject[:a=>1,:b=>2]
|
|
357
|
-
assert_instance_of( Proc, o.to_proc )
|
|
358
|
-
end
|
|
359
|
-
|
|
360
|
-
end
|
|
361
|
-
|
|
362
|
-
=end
|