facets 2.2.1 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -83,44 +83,3 @@ end
|
|
83
83
|
# Old name. To be deprecated.
|
84
84
|
PromoteSelf = Instantise
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
# _____ _
|
89
|
-
# |_ _|__ ___| |_
|
90
|
-
# | |/ _ \/ __| __|
|
91
|
-
# | | __/\__ \ |_
|
92
|
-
# |_|\___||___/\__|
|
93
|
-
#
|
94
|
-
|
95
|
-
=begin testing
|
96
|
-
|
97
|
-
require 'test/unit'
|
98
|
-
|
99
|
-
# fixture
|
100
|
-
|
101
|
-
module MyModule
|
102
|
-
extend Instantise
|
103
|
-
def self.jumble( obj, arg )
|
104
|
-
obj + arg
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
class String
|
109
|
-
include MyModule
|
110
|
-
end
|
111
|
-
|
112
|
-
# test
|
113
|
-
|
114
|
-
class TC_PromoteSelf < Test::Unit::TestCase
|
115
|
-
|
116
|
-
def test01
|
117
|
-
assert_equal( 'TryMe', MyModule.jumble( "Try", "Me" ) )
|
118
|
-
end
|
119
|
-
|
120
|
-
def test02
|
121
|
-
assert_equal( 'TryMe', "Try".jumble( "Me" ) )
|
122
|
-
end
|
123
|
-
|
124
|
-
end
|
125
|
-
|
126
|
-
=end
|
data/lib/more/facets/let.rb
CHANGED
@@ -27,7 +27,6 @@
|
|
27
27
|
|
28
28
|
require 'facets/functor'
|
29
29
|
|
30
|
-
#
|
31
30
|
class Module
|
32
31
|
|
33
32
|
# Use let to build a class like so:
|
@@ -70,22 +69,3 @@ class Module
|
|
70
69
|
end
|
71
70
|
|
72
71
|
|
73
|
-
=begin test
|
74
|
-
|
75
|
-
require 'test/unit'
|
76
|
-
|
77
|
-
class TCthis < Test::Unit::TestCase
|
78
|
-
|
79
|
-
class Foo
|
80
|
-
this.bar = 10
|
81
|
-
end
|
82
|
-
|
83
|
-
def test01
|
84
|
-
x = Foo.new
|
85
|
-
assert_equal( 10, x.bar )
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
=end
|
91
|
-
|
data/lib/more/facets/memoize.rb
CHANGED
@@ -108,48 +108,3 @@ module Kernel
|
|
108
108
|
|
109
109
|
end
|
110
110
|
|
111
|
-
|
112
|
-
|
113
|
-
# _____ _
|
114
|
-
# |_ _|__ ___| |_
|
115
|
-
# | |/ _ \/ __| __|
|
116
|
-
# | | __/\__ \ |_
|
117
|
-
# |_|\___||___/\__|
|
118
|
-
#
|
119
|
-
=begin test
|
120
|
-
|
121
|
-
require 'test/unit'
|
122
|
-
|
123
|
-
class T
|
124
|
-
def initialize(a)
|
125
|
-
@a = a
|
126
|
-
end
|
127
|
-
def a
|
128
|
-
"#{@a ^ 3 + 4}"
|
129
|
-
end
|
130
|
-
memoize :a
|
131
|
-
end
|
132
|
-
|
133
|
-
# test
|
134
|
-
|
135
|
-
class TC_Memoize < Test::Unit::TestCase
|
136
|
-
|
137
|
-
def setup
|
138
|
-
@t = T.new(2)
|
139
|
-
end
|
140
|
-
|
141
|
-
def test_memoize_01
|
142
|
-
assert_equal( @t.a, @t.a )
|
143
|
-
end
|
144
|
-
|
145
|
-
def test_memoize_02
|
146
|
-
assert_equal( @t.a.__id__, @t.a.__id__ )
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_memoize_03
|
150
|
-
assert_equal( @t.a.__id__, @t.a.__id__ )
|
151
|
-
end
|
152
|
-
|
153
|
-
end
|
154
|
-
|
155
|
-
=end
|
@@ -97,113 +97,3 @@ class Numeric
|
|
97
97
|
|
98
98
|
end
|
99
99
|
|
100
|
-
|
101
|
-
|
102
|
-
# _____ _
|
103
|
-
# |_ _|__ ___| |_
|
104
|
-
# | |/ _ \/ __| __|
|
105
|
-
# | | __/\__ \ |_
|
106
|
-
# |_|\___||___/\__|
|
107
|
-
#
|
108
|
-
|
109
|
-
=begin testing
|
110
|
-
|
111
|
-
require 'test/unit'
|
112
|
-
|
113
|
-
class TC_Multipliers < Test::Unit::TestCase
|
114
|
-
|
115
|
-
def test_deka
|
116
|
-
assert_equal( 10, 1.deka )
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_hecto
|
120
|
-
assert_equal( 100, 1.hecto )
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_kilo
|
124
|
-
assert_equal( 1000, 1.kilo )
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_mega
|
128
|
-
assert_equal( 1000000, 1.mega )
|
129
|
-
end
|
130
|
-
|
131
|
-
def test_giga
|
132
|
-
assert_equal( 1000000000, 1.giga )
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_tera
|
136
|
-
assert_equal( 1000000000000, 1.tera )
|
137
|
-
end
|
138
|
-
|
139
|
-
def test_peta
|
140
|
-
assert_equal( 1000000000000000, 1.peta )
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_exa
|
144
|
-
assert_equal( 1000000000000000000, 1.exa )
|
145
|
-
end
|
146
|
-
|
147
|
-
# Fractional
|
148
|
-
|
149
|
-
def test_deci
|
150
|
-
assert_equal( 0.1, 1.deci )
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_centi
|
154
|
-
assert_equal( 0.01, 1.centi )
|
155
|
-
end
|
156
|
-
|
157
|
-
def test_milli
|
158
|
-
assert_equal( 0.001, 1.milli )
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_milli
|
162
|
-
assert_equal( 0.000001, 1.micro )
|
163
|
-
end
|
164
|
-
|
165
|
-
def test_nano
|
166
|
-
assert_equal( 0.000000001, 1.nano )
|
167
|
-
end
|
168
|
-
|
169
|
-
def test_pico
|
170
|
-
assert_equal( 0.000000000001, 1.pico )
|
171
|
-
end
|
172
|
-
|
173
|
-
def test_femto
|
174
|
-
assert_equal( 0.000000000000001, 1.femto )
|
175
|
-
end
|
176
|
-
|
177
|
-
def test_atto
|
178
|
-
assert_equal( 0.000000000000000001, 1.atto )
|
179
|
-
end
|
180
|
-
|
181
|
-
# SI Binary
|
182
|
-
|
183
|
-
def test_kibi
|
184
|
-
assert_equal( 1024, 1.kibi )
|
185
|
-
end
|
186
|
-
|
187
|
-
def test_mebi
|
188
|
-
assert_equal( 1024**2, 1.mebi )
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_gibi
|
192
|
-
assert_equal( 1024**3, 1.gibi )
|
193
|
-
end
|
194
|
-
|
195
|
-
def test_tebi
|
196
|
-
assert_equal( 1024**4, 1.tebi )
|
197
|
-
end
|
198
|
-
|
199
|
-
def test_pebi
|
200
|
-
assert_equal( 1024**5, 1.pebi )
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_exbi
|
204
|
-
assert_equal( 1024**6, 1.exbi )
|
205
|
-
end
|
206
|
-
|
207
|
-
end
|
208
|
-
|
209
|
-
=end
|
data/lib/more/facets/ostruct.rb
CHANGED
@@ -224,127 +224,3 @@ class Hash
|
|
224
224
|
|
225
225
|
end
|
226
226
|
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
# _____ _
|
231
|
-
# |_ _|__ ___| |_
|
232
|
-
# | |/ _ \/ __| __|
|
233
|
-
# | | __/\__ \ |_
|
234
|
-
# |_|\___||___/\__|
|
235
|
-
#
|
236
|
-
=begin test
|
237
|
-
|
238
|
-
require 'test/unit'
|
239
|
-
|
240
|
-
class TestOpenStruct < Test::Unit::TestCase
|
241
|
-
|
242
|
-
def setup
|
243
|
-
@o = OpenStruct.new(:q => 1)
|
244
|
-
end
|
245
|
-
|
246
|
-
def test_update
|
247
|
-
o = OpenStruct.new( { :a => 1 } )
|
248
|
-
h = { :b => 2 }
|
249
|
-
assert_nothing_raised { o.__update__( h ) }
|
250
|
-
assert_equal( 2, o.b )
|
251
|
-
end
|
252
|
-
|
253
|
-
def test_merge_1
|
254
|
-
o = OpenStruct.new( { :a => 1 } )
|
255
|
-
h = { :b => 2 }
|
256
|
-
q = o.__merge__( h )
|
257
|
-
assert_equal( 1, q.a )
|
258
|
-
assert_equal( 2, q.b )
|
259
|
-
end
|
260
|
-
|
261
|
-
def test_merge_2
|
262
|
-
o1 = OpenStruct.new( { :a => 1 } )
|
263
|
-
o2 = OpenStruct.new( { :b => 2 } )
|
264
|
-
q = o1.__merge__( o2 )
|
265
|
-
assert_equal( 1, q.a )
|
266
|
-
assert_equal( 2, q.b )
|
267
|
-
end
|
268
|
-
|
269
|
-
def test_store
|
270
|
-
@o.instance_delegate.store(:a,1)
|
271
|
-
assert_equal( 1, @o.a )
|
272
|
-
end
|
273
|
-
|
274
|
-
def test_update
|
275
|
-
@o.instance_delegate.update(:a=>1)
|
276
|
-
assert_equal( 1, @o.a )
|
277
|
-
end
|
278
|
-
|
279
|
-
def test_op_fetch
|
280
|
-
o = OpenStruct.new( { :a => 1 } )
|
281
|
-
assert_equal( 1, o[:a] )
|
282
|
-
end
|
283
|
-
|
284
|
-
def test_op_store
|
285
|
-
o = OpenStruct.new( { :a => 1 } )
|
286
|
-
assert_nothing_raised { o[:b] = 2 }
|
287
|
-
assert_equal( 2, o.b )
|
288
|
-
end
|
289
|
-
|
290
|
-
def test_update
|
291
|
-
o = OpenStruct.new( { :a => 1 } )
|
292
|
-
h = { :b => 2 }
|
293
|
-
assert_nothing_raised { o.__update__( h ) }
|
294
|
-
assert_equal( 2, o.b )
|
295
|
-
end
|
296
|
-
|
297
|
-
def test_merge_1
|
298
|
-
o = OpenStruct.new( { :a => 1 } )
|
299
|
-
h = { :b => 2 }
|
300
|
-
q = o.__merge__( h )
|
301
|
-
assert_equal( 1, q.a )
|
302
|
-
assert_equal( 2, q.b )
|
303
|
-
end
|
304
|
-
|
305
|
-
def test_merge_2
|
306
|
-
o1 = OpenStruct.new( { :a => 1 } )
|
307
|
-
o2 = OpenStruct.new( { :b => 2 } )
|
308
|
-
q = o1.__merge__( o2 )
|
309
|
-
assert_equal( 1, q.a )
|
310
|
-
assert_equal( 2, q.b )
|
311
|
-
end
|
312
|
-
|
313
|
-
end
|
314
|
-
|
315
|
-
|
316
|
-
class TestHashToOpenStruct < Test::Unit::TestCase
|
317
|
-
|
318
|
-
def test_to_ostruct
|
319
|
-
a = { :a => 1, :b => 2, :c => 3 }
|
320
|
-
ao = a.to_ostruct
|
321
|
-
assert_equal( a[:a], ao.a )
|
322
|
-
assert_equal( a[:b], ao.b )
|
323
|
-
assert_equal( a[:c], ao.c )
|
324
|
-
end
|
325
|
-
|
326
|
-
def test_to_ostruct_recurse
|
327
|
-
a = { :a => 1, :b => 2, :c => { :x => 4 } }
|
328
|
-
ao = a.to_ostruct_recurse
|
329
|
-
assert_equal( a[:a], ao.a )
|
330
|
-
assert_equal( a[:b], ao.b )
|
331
|
-
assert_equal( a[:c][:x], ao.c.x )
|
332
|
-
end
|
333
|
-
|
334
|
-
def test_to_ostruct_recurse_with_recursion
|
335
|
-
a = {}
|
336
|
-
a[:a] = a
|
337
|
-
ao = a.to_ostruct_recurse
|
338
|
-
assert_equal( ao, ao.a )
|
339
|
-
end
|
340
|
-
|
341
|
-
def test_to_ostruct_advanced
|
342
|
-
h = { 'a' => { 'b' => 1 } }
|
343
|
-
o = h.to_ostruct_recurse( { h['a'] => h['a'] } )
|
344
|
-
assert_equal( 1, o.a['b'] )
|
345
|
-
assert( Hash === o.a )
|
346
|
-
end
|
347
|
-
|
348
|
-
end
|
349
|
-
|
350
|
-
=end
|
data/lib/more/facets/random.rb
CHANGED
@@ -371,156 +371,3 @@ class String
|
|
371
371
|
|
372
372
|
end
|
373
373
|
|
374
|
-
|
375
|
-
# _____ _
|
376
|
-
# |_ _|__ ___| |_
|
377
|
-
# | |/ _ \/ __| __|
|
378
|
-
# | | __/\__ \ |_
|
379
|
-
# |_|\___||___/\__|
|
380
|
-
#
|
381
|
-
=begin test
|
382
|
-
|
383
|
-
require 'test/unit'
|
384
|
-
|
385
|
-
class TestKernelRandom < Test::Unit::TestCase
|
386
|
-
|
387
|
-
def test_maybe
|
388
|
-
assert_nothing_raised { maybe }
|
389
|
-
end
|
390
|
-
|
391
|
-
end
|
392
|
-
|
393
|
-
class TestArrayRandom < Test::Unit::TestCase
|
394
|
-
|
395
|
-
def test_at_rand
|
396
|
-
a = [1,2,3,4,5]
|
397
|
-
20.times{ assert_nothing_raised{ a.at_rand } }
|
398
|
-
20.times{ assert( a.include?( a.at_rand ) ) }
|
399
|
-
end
|
400
|
-
|
401
|
-
def test_at_rand!
|
402
|
-
a = ['a','b','c']
|
403
|
-
assert_equal( 1, a.at_rand!.length )
|
404
|
-
assert_equal( 2, a.length )
|
405
|
-
end
|
406
|
-
|
407
|
-
def test_pick
|
408
|
-
a = ['a','b','c']
|
409
|
-
assert_equal( 3, a.pick(3).length )
|
410
|
-
assert_equal( 3, a.length )
|
411
|
-
a = ['a','b','c']
|
412
|
-
assert_equal( 3, a.pick(4).length )
|
413
|
-
assert_equal( 3, a.length )
|
414
|
-
end
|
415
|
-
|
416
|
-
def test_pick!
|
417
|
-
a = ['a','b','c']
|
418
|
-
assert_equal( 3, a.pick!(3).length )
|
419
|
-
assert_equal( 0, a.length )
|
420
|
-
a = ['a','b','c']
|
421
|
-
assert_equal( 3, a.pick!(4).length )
|
422
|
-
assert_equal( 0, a.length )
|
423
|
-
end
|
424
|
-
|
425
|
-
def test_rand_index
|
426
|
-
10.times {
|
427
|
-
i = [1,2,3].rand_index
|
428
|
-
assert( (0..2).include?(i) )
|
429
|
-
}
|
430
|
-
end
|
431
|
-
|
432
|
-
def test_rand_subset
|
433
|
-
10.times {
|
434
|
-
a = [1,2,3,4].rand_subset
|
435
|
-
assert( a.size <= 4 )
|
436
|
-
}
|
437
|
-
end
|
438
|
-
|
439
|
-
def test_shuffle
|
440
|
-
a = [1,2,3,4,5]
|
441
|
-
b = a.shuffle
|
442
|
-
assert_equal( a, b.sort )
|
443
|
-
end
|
444
|
-
|
445
|
-
def test_shuffle!
|
446
|
-
a = [1,2,3,4,5]
|
447
|
-
b = a.dup
|
448
|
-
b.shuffle!
|
449
|
-
assert_equal( a, b.sort )
|
450
|
-
end
|
451
|
-
|
452
|
-
end
|
453
|
-
|
454
|
-
class TestHashRandom < Test::Unit::TestCase
|
455
|
-
|
456
|
-
def test_rand_key
|
457
|
-
h = { :a=>1, :b=>2, :c=>3 }
|
458
|
-
10.times { assert( h.keys.include?( h.rand_key ) ) }
|
459
|
-
end
|
460
|
-
|
461
|
-
def test_rand_pair
|
462
|
-
h = { :a=>1, :b=>2, :c=>3 }
|
463
|
-
10.times { k,v = *h.rand_pair; assert_equal( v, h[k] ) }
|
464
|
-
end
|
465
|
-
|
466
|
-
def test_rand_value
|
467
|
-
h = { :a=>1, :b=>2, :c=>3 }
|
468
|
-
10.times { assert( h.values.include?( h.rand_value ) ) }
|
469
|
-
end
|
470
|
-
|
471
|
-
def test_shuffle
|
472
|
-
h = {:a=>1, :b=>2, :c=>3 }
|
473
|
-
assert_nothing_raised { h.shuffle }
|
474
|
-
end
|
475
|
-
|
476
|
-
def test_shuffle!
|
477
|
-
h = {:a=>1, :b=>2, :c=>3 }
|
478
|
-
assert_nothing_raised { h.shuffle! }
|
479
|
-
end
|
480
|
-
|
481
|
-
end
|
482
|
-
|
483
|
-
class TestStringRandom < Test::Unit::TestCase
|
484
|
-
|
485
|
-
def test_String_rand_letter
|
486
|
-
100.times { |i| assert( /[a-zA-z]/ =~ String.rand_letter ) }
|
487
|
-
end
|
488
|
-
|
489
|
-
def test_at_rand
|
490
|
-
a = '12345'
|
491
|
-
20.times{ assert_nothing_raised{ a.at_rand } }
|
492
|
-
20.times{ assert( a.include?( a.at_rand ) ) }
|
493
|
-
end
|
494
|
-
|
495
|
-
def test_at_rand!
|
496
|
-
x = 'ab'
|
497
|
-
r = x.at_rand!
|
498
|
-
assert( r == 'a' || r == 'b' )
|
499
|
-
assert( x == 'a' || x == 'b' )
|
500
|
-
end
|
501
|
-
|
502
|
-
def test_rand_index
|
503
|
-
10.times { assert( (0..2).include?( 'abc'.rand_index ) ) }
|
504
|
-
end
|
505
|
-
|
506
|
-
def test_rand_byte
|
507
|
-
s = 'ab'
|
508
|
-
r = s.rand_byte
|
509
|
-
assert( r == 97 || r == 98 )
|
510
|
-
end
|
511
|
-
|
512
|
-
def test_rand_byte
|
513
|
-
s = 'ab'
|
514
|
-
r = s.rand_byte
|
515
|
-
assert( r == 97 || r == 98 )
|
516
|
-
assert( s = 'a' || s = 'b' )
|
517
|
-
end
|
518
|
-
|
519
|
-
def test_shuffle
|
520
|
-
assert_nothing_raised { "abc 123".shuffle }
|
521
|
-
#assert_nothing_raised { "abc 123".shuffle! }
|
522
|
-
end
|
523
|
-
|
524
|
-
end
|
525
|
-
|
526
|
-
=end
|