uttk 0.3.1.2
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/AUTHORS +36 -0
- data/COPYING +18 -0
- data/ChangeLog +7673 -0
- data/GUIDELINES +86 -0
- data/LGPL +504 -0
- data/NEWS +158 -0
- data/NORM +137 -0
- data/README +180 -0
- data/Rakefile +8 -0
- data/SPEC.gemspec +15 -0
- data/SPEC.yml +60 -0
- data/TODO +23 -0
- data/TODO.old +31 -0
- data/VERSION +5 -0
- data/bin/getopts/uttk.rb +390 -0
- data/bin/uttk +188 -0
- data/bin/uttk-unit +125 -0
- data/lib/uttk.rb +288 -0
- data/lib/uttk/dumpers/Basic.rb +23 -0
- data/lib/uttk/dumpers/BasicColor.rb +35 -0
- data/lib/uttk/dumpers/Dumper.rb +77 -0
- data/lib/uttk/dumpers/Html.rb +271 -0
- data/lib/uttk/dumpers/Path.rb +24 -0
- data/lib/uttk/dumpers/Xml.rb +88 -0
- data/lib/uttk/dumpers/Yaml.rb +138 -0
- data/lib/uttk/filters.rb +128 -0
- data/lib/uttk/filters/Buffer.rb +119 -0
- data/lib/uttk/filters/Compact.rb +75 -0
- data/lib/uttk/filters/Default.rb +27 -0
- data/lib/uttk/filters/DefaultColor.rb +27 -0
- data/lib/uttk/filters/Filter.rb +53 -0
- data/lib/uttk/filters/Id.rb +30 -0
- data/lib/uttk/filters/JustStatus.rb +25 -0
- data/lib/uttk/filters/KeepSkipBased.rb +38 -0
- data/lib/uttk/filters/NodeCut.rb +97 -0
- data/lib/uttk/filters/RPathFilter.rb +134 -0
- data/lib/uttk/filters/Saver.rb +53 -0
- data/lib/uttk/filters/TextFilter.rb +69 -0
- data/lib/uttk/generators/dumper_generator.rb +28 -0
- data/lib/uttk/generators/filter_generator.rb +28 -0
- data/lib/uttk/generators/generator.rb +86 -0
- data/lib/uttk/generators/generator_generator.rb +26 -0
- data/lib/uttk/generators/loader_generator.rb +28 -0
- data/lib/uttk/generators/path_filter_generator.rb +28 -0
- data/lib/uttk/generators/strategy_generator.rb +28 -0
- data/lib/uttk/generators/templates/dumper.rb +50 -0
- data/lib/uttk/generators/templates/filter.rb +50 -0
- data/lib/uttk/generators/templates/generator.rb +28 -0
- data/lib/uttk/generators/templates/loader.rb +26 -0
- data/lib/uttk/generators/templates/path_filter.rb +28 -0
- data/lib/uttk/generators/templates/strategy.rb +59 -0
- data/lib/uttk/generators/templates/strategy.yml +28 -0
- data/lib/uttk/generators/templates/unit_test.rb +46 -0
- data/lib/uttk/loaders/Loader.rb +180 -0
- data/lib/uttk/loaders/Ruby.rb +28 -0
- data/lib/uttk/loaders/Yaml.rb +98 -0
- data/lib/uttk/logger.rb +306 -0
- data/lib/uttk/logger/backend.rb +170 -0
- data/lib/uttk/logger/path.rb +202 -0
- data/lib/uttk/logger/section_node.rb +214 -0
- data/lib/uttk/logger/severity.rb +63 -0
- data/lib/uttk/logger/to_uttk_log.rb +127 -0
- data/lib/uttk/logger/verbosity.rb +61 -0
- data/lib/uttk/logger_factory.rb +55 -0
- data/lib/uttk/path_filters/ColorStatus.rb +57 -0
- data/lib/uttk/path_filters/PathFilter.rb +27 -0
- data/lib/uttk/path_filters/RemoveTypes.rb +25 -0
- data/lib/uttk/status.rb +146 -0
- data/lib/uttk/strategies/Abort.rb +24 -0
- data/lib/uttk/strategies/Assert.rb +44 -0
- data/lib/uttk/strategies/Authors.rb +45 -0
- data/lib/uttk/strategies/Block.rb +113 -0
- data/lib/uttk/strategies/Bootstrap.rb +55 -0
- data/lib/uttk/strategies/Checkout.rb +64 -0
- data/lib/uttk/strategies/Clean.rb +29 -0
- data/lib/uttk/strategies/Cmd.rb +60 -0
- data/lib/uttk/strategies/CmdBase.rb +130 -0
- data/lib/uttk/strategies/Collection.rb +158 -0
- data/lib/uttk/strategies/Compile.rb +59 -0
- data/lib/uttk/strategies/Composite.rb +201 -0
- data/lib/uttk/strategies/Composite/contents_eval.rb +40 -0
- data/lib/uttk/strategies/Configure.rb +66 -0
- data/lib/uttk/strategies/Error.rb +23 -0
- data/lib/uttk/strategies/Fail.rb +26 -0
- data/lib/uttk/strategies/IOBased.rb +159 -0
- data/lib/uttk/strategies/Import.rb +60 -0
- data/lib/uttk/strategies/Iterate.rb +139 -0
- data/lib/uttk/strategies/JUnit.rb +205 -0
- data/lib/uttk/strategies/KillAll.rb +62 -0
- data/lib/uttk/strategies/Make.rb +94 -0
- data/lib/uttk/strategies/Package.rb +129 -0
- data/lib/uttk/strategies/PackageCollection.rb +78 -0
- data/lib/uttk/strategies/Pass.rb +24 -0
- data/lib/uttk/strategies/Pool.rb +104 -0
- data/lib/uttk/strategies/ProbabilityThreshold.rb +46 -0
- data/lib/uttk/strategies/Proxy.rb +42 -0
- data/lib/uttk/strategies/RMatch.rb +92 -0
- data/lib/uttk/strategies/RUnit.rb +132 -0
- data/lib/uttk/strategies/SignalCmd.rb +85 -0
- data/lib/uttk/strategies/Sleep.rb +36 -0
- data/lib/uttk/strategies/SqlQuery.rb +120 -0
- data/lib/uttk/strategies/Strategy.rb +683 -0
- data/lib/uttk/strategies/Stub.rb +37 -0
- data/lib/uttk/strategies/SubCmd.rb +77 -0
- data/lib/uttk/strategies/Suite.rb +71 -0
- data/lib/uttk/strategies/Test.rb +89 -0
- data/lib/uttk/streams.rb +69 -0
- data/lib/uttk/streams/Diff.rb +60 -0
- data/lib/uttk/streams/HexaDiff.rb +35 -0
- data/lib/uttk/streams/Stream.rb +76 -0
- data/lib/uttk/weights.rb +17 -0
- data/lib/uttk/weights/WExpr.rb +68 -0
- data/lib/uttk/weights/WFloat.rb +23 -0
- data/lib/uttk/weights/WMin.rb +22 -0
- data/lib/uttk/weights/Weight.rb +105 -0
- data/lib/www/javascripts/uttk.js +185 -0
- data/misc/expandtab.rb +29 -0
- data/misc/header.rb +44 -0
- data/misc/renaming +57 -0
- data/misc/textile_compiler +194 -0
- data/misc/uttk-grep.sh +8 -0
- data/misc/uttk-line-count.rb +143 -0
- data/test/examples-suite.yml +8 -0
- data/test/examples/README +68 -0
- data/test/examples/basic.rb +10 -0
- data/test/examples/basic.yml +9 -0
- data/test/examples/cache/cache_and_fatal.yml +5 -0
- data/test/examples/cache/simple.yml +30 -0
- data/test/examples/sql/basic.yml +24 -0
- data/test/examples/students-suite.yml +9 -0
- data/test/examples/students/ball.yml +11 -0
- data/test/examples/students/glob_stud.yml +20 -0
- data/test/examples/students/mini-lib.yml +61 -0
- data/test/examples/students/pool_stud.yml +31 -0
- data/test/examples/students/stud.yml +21 -0
- data/test/fixtures/ball/20040804-exam_a1-zapngo-tessar_m.tar.gz +0 -0
- data/test/fixtures/ball/Makefile +24 -0
- data/test/fixtures/ball/bar_p-mini-lib.tar.bz2 +0 -0
- data/test/fixtures/ball/bar_p-mini-lib/Makefile +20 -0
- data/test/fixtures/ball/bar_p-mini-lib/my_strlen.c +13 -0
- data/test/fixtures/ball/foo_s-mini-lib.tar.bz2 +0 -0
- data/test/fixtures/ball/foo_s-mini-lib/Makefile +20 -0
- data/test/fixtures/ball/foo_s-mini-lib/configure +2 -0
- data/test/fixtures/ball/foo_s-mini-lib/my_strlen.c +10 -0
- data/test/fixtures/ball/hello.tar.bz2 +0 -0
- data/test/fixtures/ball/hello.tar.gz +0 -0
- data/test/fixtures/ball/hello/Makefile +14 -0
- data/test/fixtures/ball/hello/hello.c +7 -0
- data/test/fixtures/ball/jack-exit.tar.bz2 +0 -0
- data/test/fixtures/ball/jack-exit/Makefile +14 -0
- data/test/fixtures/ball/jack-exit/exit.c +16 -0
- data/test/fixtures/ball/joe-exit.tar.bz2 +0 -0
- data/test/fixtures/ball/joe-exit/Makefile +14 -0
- data/test/fixtures/ball/joe-exit/exit.c +8 -0
- data/test/fixtures/ball/joe_i-mini-lib.tar.bz2 +0 -0
- data/test/fixtures/ball/joe_i-mini-lib/Makefile +20 -0
- data/test/fixtures/ball/joe_i-mini-lib/configure +2 -0
- data/test/fixtures/ball/joe_i-mini-lib/my_strlen.c +10 -0
- data/test/fixtures/ball/john-exit.tar.bz2 +0 -0
- data/test/fixtures/ball/john-exit/Makefile +14 -0
- data/test/fixtures/ball/john-exit/exit.c +6 -0
- data/test/fixtures/ball/qux_j-mini-lib.tar.bz2 +0 -0
- data/test/fixtures/ball/qux_j-mini-lib/Makefile +20 -0
- data/test/fixtures/ball/qux_j-mini-lib/my_strlen.c +12 -0
- data/test/fixtures/binaries/segv +0 -0
- data/test/fixtures/binaries/segv.c +10 -0
- data/test/fixtures/binaries/segv.rb +2 -0
- data/test/fixtures/demo/command-tutorial/steps/1/check.yml +5 -0
- data/test/fixtures/demo/command-tutorial/steps/1/pluralizer.rb +10 -0
- data/test/fixtures/demo/command-tutorial/steps/2/bad_check.yml +7 -0
- data/test/fixtures/demo/command-tutorial/steps/2/check.yml +7 -0
- data/test/fixtures/demo/command-tutorial/steps/2/pluralizer.rb +10 -0
- data/test/fixtures/demo/command-tutorial/steps/3.1/check.yml +12 -0
- data/test/fixtures/demo/command-tutorial/steps/3/check.yml +14 -0
- data/test/fixtures/demo/command-tutorial/steps/4.1/bird.txt +1 -0
- data/test/fixtures/demo/command-tutorial/steps/4.1/check.yml +12 -0
- data/test/fixtures/demo/command-tutorial/steps/4/check.yml +12 -0
- data/test/fixtures/demo/command-tutorial/steps/4/pluralizer.rb +12 -0
- data/test/fixtures/demo/command-tutorial/steps/5.1/bird.txt +1 -0
- data/test/fixtures/demo/command-tutorial/steps/5.1/check.yml +17 -0
- data/test/fixtures/demo/command-tutorial/steps/5.1/pluralizer.rb +17 -0
- data/test/fixtures/demo/command-tutorial/steps/5/bird.txt +1 -0
- data/test/fixtures/demo/command-tutorial/steps/5/check.yml +16 -0
- data/test/fixtures/demo/command-tutorial/steps/5/pluralizer.rb +16 -0
- data/test/fixtures/demo/command-tutorial/steps/6.1/bird.txt +1 -0
- data/test/fixtures/demo/command-tutorial/steps/6.1/check.yml +22 -0
- data/test/fixtures/demo/command-tutorial/steps/6.1/pluralizer.rb +17 -0
- data/test/fixtures/demo/command-tutorial/steps/6/bird.txt +1 -0
- data/test/fixtures/demo/command-tutorial/steps/6/check.yml +21 -0
- data/test/fixtures/demo/command-tutorial/steps/6/pluralizer.rb +17 -0
- data/test/fixtures/demo/command-tutorial/steps/7/bird.txt +1 -0
- data/test/fixtures/demo/command-tutorial/steps/7/check.yml +22 -0
- data/test/fixtures/demo/command-tutorial/steps/7/pluralizer.rb +17 -0
- data/test/fixtures/demo/filter-tutorial/check.yml +20 -0
- data/test/fixtures/demo/filter-tutorial/filters/CutSkip100.rb +19 -0
- data/test/fixtures/demo/filter-tutorial/pluralizer.rb +17 -0
- data/test/fixtures/java/unit/MultiRight/Foo/Foo.java +11 -0
- data/test/fixtures/java/unit/MultiRight/Foo/FooTest.java +15 -0
- data/test/fixtures/java/unit/MultiRight/MultiRight.java +13 -0
- data/test/fixtures/java/unit/MultiRight/MultiRightTest.java +12 -0
- data/test/fixtures/java/unit/MultiRight/bar/Bar.java +11 -0
- data/test/fixtures/java/unit/MultiRight/bar/BarTest.java +21 -0
- data/test/fixtures/java/unit/MultiRight/build.sh +7 -0
- data/test/fixtures/java/unit/SimpleException/SimpleExceptionTest.java +11 -0
- data/test/fixtures/java/unit/SimpleException/build.sh +4 -0
- data/test/fixtures/java/unit/build.sh +9 -0
- data/test/fixtures/java/unit/multibar.yml +6 -0
- data/test/fixtures/java/unit/multifoo.yml +6 -0
- data/test/fixtures/java/unit/multiright.yml +8 -0
- data/test/fixtures/java/unit/simple_exception.yml +6 -0
- data/test/fixtures/mini-lib/Makefile +9 -0
- data/test/fixtures/mini-lib/strlen.c +15 -0
- data/test/fixtures/package/pkg_foo.tar.gz +0 -0
- data/test/fixtures/package/pkg_foo/Makefile +20 -0
- data/test/fixtures/package/pkg_foo/bootstrap +3 -0
- data/test/fixtures/package/pkg_foo/configure +3 -0
- data/test/fixtures/package/pkg_foo/foo.sh +2 -0
- data/test/fixtures/text/1.txt +4 -0
- data/test/fixtures/unit/bad.rb +26 -0
- data/test/fixtures/unit/error.rb +6 -0
- data/test/fixtures/unit/good.rb +26 -0
- data/test/functional-suite.yml +10 -0
- data/test/functional/author.yml +11 -0
- data/test/functional/base.yml +119 -0
- data/test/functional/base_pool.yml +13 -0
- data/test/functional/block.yml +13 -0
- data/test/functional/cat.yml +16 -0
- data/test/functional/cmd.yml +17 -0
- data/test/functional/diff.yml +27 -0
- data/test/functional/env_cmd.yml +53 -0
- data/test/functional/exit.yml +15 -0
- data/test/functional/fatal.yml +23 -0
- data/test/functional/glob.yml +11 -0
- data/test/functional/hexa-diff.yml +25 -0
- data/test/functional/import.yml +41 -0
- data/test/functional/iterate.yml +99 -0
- data/test/functional/killall.yml +31 -0
- data/test/functional/pkg.yml +14 -0
- data/test/functional/probability_threshold.yml +35 -0
- data/test/functional/r_unit.yml +26 -0
- data/test/functional/rmatch.yml +122 -0
- data/test/functional/signal_cmd.yml +22 -0
- data/test/functional/sub.yml +15 -0
- data/test/functional/test.yml +25 -0
- data/test/functional/timeout.yml +20 -0
- data/test/functional/wc.yml +26 -0
- data/test/functional/weight.yml +152 -0
- data/test/pkg-suite.yml +8 -0
- data/test/pkg/cmdline.yml +80 -0
- data/test/pool-suite.yml +8 -0
- data/test/pool/base.yml +12 -0
- data/test/pool/pool.yml +25 -0
- data/test/ruby-suite.rb +10 -0
- data/test/ruby-suite.yml +5 -0
- data/test/ruby/base.rb +119 -0
- data/test/ruby/iterate.rb +21 -0
- data/test/ruby/wc.rb +43 -0
- data/test/unit-suite.yml +10 -0
- data/test/unit/dumpers/path_test.rb +46 -0
- data/test/unit/dumpers/xml_test.rb +65 -0
- data/test/unit/dumpers/yaml_test.rb +65 -0
- data/test/unit/filters/buffer_test.rb +168 -0
- data/test/unit/filters/keep_skip_based_test.rb +46 -0
- data/test/unit/filters/node_cut_test.rb +72 -0
- data/test/unit/filters/rpath_filter_test.rb +191 -0
- data/test/unit/filters/text_filter_test.rb +46 -0
- data/test/unit/filters_test.rb +119 -0
- data/test/unit/logger/section_node_test.rb +120 -0
- data/test/unit/logger/severity_test.rb +37 -0
- data/test/unit/logger/to_uttk_log_test.rb +113 -0
- data/test/unit/logger/verbosity_test.rb +44 -0
- data/test/unit/logger_test.rb +203 -0
- data/test/unit/strategies/suite_test.rb +151 -0
- data/test/uttk-check.yml +8 -0
- data/test/uttk-distcheck.yml +18 -0
- metadata +399 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 Uttk team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: /fey/uttk/trunk/lib/uttk/streams/Stream.rb 8778 2005-09-26T04:34:48.103938Z ertai $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Uttk
|
|
8
|
+
|
|
9
|
+
module Streams
|
|
10
|
+
|
|
11
|
+
class Stream
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Attributes
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
attr_accessor :name, :my, :ref
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
#
|
|
21
|
+
# Constructor
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
def initialize ( name, ref=nil )
|
|
25
|
+
@name, @my, @ref = name.to_s, TempPath.new(name), ref
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
#
|
|
30
|
+
# Methods
|
|
31
|
+
#
|
|
32
|
+
|
|
33
|
+
def compare_streams
|
|
34
|
+
return @cmp if defined? @cmp
|
|
35
|
+
@cmp = @ref.compare_stream(@my)
|
|
36
|
+
@status = @cmp ? :PASS : :FAILED
|
|
37
|
+
@cmp
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def status
|
|
41
|
+
compare_streams
|
|
42
|
+
@status
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def to_uttk_log ( log )
|
|
46
|
+
unless @name == 'input'
|
|
47
|
+
str = @my.to_s_for_uttk_log
|
|
48
|
+
unless str.nil? or (str.is_a? String and str.empty?)
|
|
49
|
+
log["my_#@name"] = str
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
unless @ref.nil?
|
|
53
|
+
str = @ref.to_s_for_uttk_log
|
|
54
|
+
unless str.nil? or (str.is_a? String and str.empty?)
|
|
55
|
+
log["ref_#@name"] = str
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def clean
|
|
61
|
+
if @my.is_a? Pathname
|
|
62
|
+
@my.unlink if @my.exist? and @my.temp?
|
|
63
|
+
end
|
|
64
|
+
if @ref.is_a? Pathname
|
|
65
|
+
@ref.unlink if @ref.exist? and @ref.temp?
|
|
66
|
+
elsif @ref.is_a? File
|
|
67
|
+
ref = Pathname.new(@ref.path)
|
|
68
|
+
ref.unlink if ref.exist? and ref.temp?
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end # class Stream
|
|
73
|
+
|
|
74
|
+
end # module Streams
|
|
75
|
+
|
|
76
|
+
end # module Uttk
|
data/lib/uttk/weights.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Author:: Nicolas Despr�s <nicolas.despres@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2005 Uttk Team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: /w/fey/uttk/trunk/lib/uttk/weights.rb 21966 2006-02-19T21:06:09.175871Z pouillar $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Uttk
|
|
8
|
+
|
|
9
|
+
module Weights
|
|
10
|
+
|
|
11
|
+
Default = WFloat
|
|
12
|
+
|
|
13
|
+
end # module Weights
|
|
14
|
+
|
|
15
|
+
end # module Uttk
|
|
16
|
+
|
|
17
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 Uttk team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: /fey/uttk/trunk/lib/uttk/weights/WExpr.rb 8778 2005-09-26T04:34:48.103938Z ertai $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Uttk
|
|
8
|
+
|
|
9
|
+
module Weights
|
|
10
|
+
|
|
11
|
+
class WExpr < Weight
|
|
12
|
+
|
|
13
|
+
attr_accessor :expr
|
|
14
|
+
|
|
15
|
+
def initialize ( aFloat, min=0, max=1, expr=nil )
|
|
16
|
+
super(aFloat, min, max)
|
|
17
|
+
@expr = expr || "#{to_f}[#@min, #@max]"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def + ( rhs )
|
|
21
|
+
x = super
|
|
22
|
+
x.expr = "(#{@expr} + #{rhs.to_s})[#{x.min}, #{x.max}]"
|
|
23
|
+
x
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def * ( rhs )
|
|
27
|
+
x = super
|
|
28
|
+
x.expr = "(#{to_s} * #{rhs.to_s})[#{x.min}, #{x.max}]"
|
|
29
|
+
x
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def normalize ( weight )
|
|
34
|
+
diff = @max - @min
|
|
35
|
+
if diff.zero?
|
|
36
|
+
if @max.zero? and weight.zero?
|
|
37
|
+
self.class.new(:PASS)
|
|
38
|
+
else
|
|
39
|
+
self.class.new(:FAIL)
|
|
40
|
+
end
|
|
41
|
+
else
|
|
42
|
+
self.class.new((self - @min) / diff, 0, 1,
|
|
43
|
+
"((#{to_s} - #{min.to_s}) / (#{max.to_s} - #{min.to_s}))")
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def get
|
|
49
|
+
@expr + " == #{to_f.to_s} == #{(to_f * 100).floor}%"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def to_s
|
|
53
|
+
@expr
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def to_yaml ( opts={} )
|
|
57
|
+
if opts[:uttk]
|
|
58
|
+
to_f.to_yaml(opts)
|
|
59
|
+
else
|
|
60
|
+
super
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end # class WExpr
|
|
65
|
+
|
|
66
|
+
end # module Weights
|
|
67
|
+
|
|
68
|
+
end # module Uttk
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 Uttk team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: /fey/uttk/trunk/lib/uttk/weights/WFloat.rb 8778 2005-09-26T04:34:48.103938Z ertai $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Uttk
|
|
8
|
+
|
|
9
|
+
module Weights
|
|
10
|
+
|
|
11
|
+
class WFloat < Weight
|
|
12
|
+
|
|
13
|
+
def get
|
|
14
|
+
return to_f if nan?
|
|
15
|
+
(to_f * 100).floor.to_s + '%'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end # class WFloat
|
|
19
|
+
|
|
20
|
+
end # module Weights
|
|
21
|
+
|
|
22
|
+
end # module Uttk
|
|
23
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 Uttk team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: /fey/uttk/trunk/lib/uttk/weights/WMin.rb 8778 2005-09-26T04:34:48.103938Z ertai $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Uttk
|
|
8
|
+
|
|
9
|
+
module Weights
|
|
10
|
+
|
|
11
|
+
class WMin < WFloat
|
|
12
|
+
|
|
13
|
+
def normalize ( weight )
|
|
14
|
+
(to_f == @max) ? self.class.new(:PASS) : self.class.new(:FAIL)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # class WMin
|
|
18
|
+
|
|
19
|
+
end # module Weights
|
|
20
|
+
|
|
21
|
+
end # module Uttk
|
|
22
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 Uttk team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: /fey/uttk/trunk/lib/uttk/weights/Weight.rb 8800 2005-10-09T11:12:27.126567Z ertai $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
require 'delegate'
|
|
8
|
+
|
|
9
|
+
module Uttk
|
|
10
|
+
|
|
11
|
+
# FIXME: explain here how to write a new weight computation
|
|
12
|
+
module Weights
|
|
13
|
+
|
|
14
|
+
# FIXME: document me
|
|
15
|
+
class Weight
|
|
16
|
+
|
|
17
|
+
attr_reader :min, :max
|
|
18
|
+
|
|
19
|
+
def initialize ( aFloat, min=0, max=1 )
|
|
20
|
+
if BASE.has_key? aFloat
|
|
21
|
+
aFloat, min, max = BASE[aFloat]
|
|
22
|
+
end
|
|
23
|
+
aFloat = aFloat.to_f
|
|
24
|
+
@val = aFloat
|
|
25
|
+
@min, @max = min, max
|
|
26
|
+
unless @min <= aFloat or aFloat <= @max
|
|
27
|
+
raise ArgumentError, "#@min <= #{aFloat} <= #@max"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
BASE =
|
|
32
|
+
{
|
|
33
|
+
:START => [0, 0, 0],
|
|
34
|
+
:PASS => [1, 0, 1],
|
|
35
|
+
:FAIL => [0, 0, 1]
|
|
36
|
+
}.freeze.each_value { |x| x.freeze }
|
|
37
|
+
|
|
38
|
+
def start?
|
|
39
|
+
[self, @max, @min].all? { |x| x.zero? }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def min?
|
|
43
|
+
to_f == @min
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def max?
|
|
47
|
+
to_f == @max
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def pass?
|
|
51
|
+
! zero? and max?
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def fail?
|
|
55
|
+
to_f != @max
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def + ( rhs )
|
|
59
|
+
rhs = self.class.new(rhs) unless rhs.is_a? Weight
|
|
60
|
+
self.class.new(to_f + rhs.to_f, @min + rhs.min, @max + rhs.max)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def * ( rhs )
|
|
64
|
+
f = rhs.to_f
|
|
65
|
+
a, b, c = to_f * f, @min * f, @max * f
|
|
66
|
+
b, c = c, b if f < 0
|
|
67
|
+
self.class.new(a, b, c)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def normalize ( weight )
|
|
71
|
+
diff = @max - @min
|
|
72
|
+
if diff.zero?
|
|
73
|
+
if @max.zero? and weight.zero?
|
|
74
|
+
self.class.new(:PASS)
|
|
75
|
+
else
|
|
76
|
+
self.class.new(:FAIL)
|
|
77
|
+
end
|
|
78
|
+
else
|
|
79
|
+
self.class.new((self - @min) / diff, 0, 1)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
attr_reader :val
|
|
84
|
+
alias :get :val
|
|
85
|
+
|
|
86
|
+
def long_get
|
|
87
|
+
"#{get}[#@min, #@max]"
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def == ( rhs )
|
|
91
|
+
rhs.class <= Weight and
|
|
92
|
+
@min == rhs.min and
|
|
93
|
+
@val == rhs.val and
|
|
94
|
+
@max == rhs.max
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def method_missing ( *a, &b )
|
|
98
|
+
@val.send(*a, &b)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end # class Weight
|
|
102
|
+
|
|
103
|
+
end # module Weights
|
|
104
|
+
|
|
105
|
+
end # module Uttk
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/* Uttk JavaScript library */
|
|
2
|
+
|
|
3
|
+
// Results of the moulette
|
|
4
|
+
var uttk_root = new Array();
|
|
5
|
+
var uttk_hash = new Array();
|
|
6
|
+
var uttk_nodes = new Array();
|
|
7
|
+
var uttk_leaves = new Array();
|
|
8
|
+
var CLASS = 0;
|
|
9
|
+
var ID = 1;
|
|
10
|
+
var FATHER = 2;
|
|
11
|
+
var STATE = 3;
|
|
12
|
+
var CONTENTS1 = 4;
|
|
13
|
+
var CONTENTS2 = 5;
|
|
14
|
+
var CONTENTS3 = 6;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// Main function
|
|
18
|
+
function uttk_main ( )
|
|
19
|
+
{
|
|
20
|
+
var src = uttk_display(uttk_root);
|
|
21
|
+
var dom = document.getElementById('uttk_contents');
|
|
22
|
+
|
|
23
|
+
if (dom == null)
|
|
24
|
+
alert("DOM id='uttk_contents' not found !");
|
|
25
|
+
else
|
|
26
|
+
dom.innerHTML = src;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// Add a leaf to "father"
|
|
31
|
+
function uttk_add_leaf ( id, father_id, state, c1, c2, c3 )
|
|
32
|
+
{
|
|
33
|
+
var father = uttk_hash[father_id];
|
|
34
|
+
|
|
35
|
+
if (father == null)
|
|
36
|
+
name += "(FATHER[" + father_id + "] == null)";
|
|
37
|
+
var leaf = new Array("leaf", id, father, state, c1, c2 || '', c3 || '');
|
|
38
|
+
if (father != null)
|
|
39
|
+
father[CONTENTS3].push(leaf);
|
|
40
|
+
|
|
41
|
+
uttk_hash[id] = leaf;
|
|
42
|
+
uttk_leaves.push(leaf);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
// Add a node to "father"
|
|
47
|
+
function uttk_add_node ( id, father_id, state, c1, c2 )
|
|
48
|
+
{
|
|
49
|
+
var father = uttk_hash[father_id];
|
|
50
|
+
var node = new Array("node", id, father, state, c1, c2, new Array());
|
|
51
|
+
|
|
52
|
+
if (father == null)
|
|
53
|
+
uttk_root.push(node);
|
|
54
|
+
else
|
|
55
|
+
father[CONTENTS3].push(node);
|
|
56
|
+
|
|
57
|
+
uttk_hash[id] = node;
|
|
58
|
+
uttk_nodes.push(node);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
// Collapse or expand data
|
|
63
|
+
function uttk_toggle_state ( id )
|
|
64
|
+
{
|
|
65
|
+
var obj = uttk_hash[id];
|
|
66
|
+
|
|
67
|
+
obj[STATE] = (obj[STATE] == 1)? 0 : 1;
|
|
68
|
+
|
|
69
|
+
// Redisplay
|
|
70
|
+
uttk_main();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
// Generate html common part
|
|
75
|
+
function uttk_node_or_leaf ( data )
|
|
76
|
+
{
|
|
77
|
+
switch (data[STATE])
|
|
78
|
+
{
|
|
79
|
+
case 0:
|
|
80
|
+
break;
|
|
81
|
+
case 1:
|
|
82
|
+
return data[CONTENTS1] + 'open' + data[CONTENTS2];
|
|
83
|
+
case 2:
|
|
84
|
+
return data[CONTENTS1];
|
|
85
|
+
default:
|
|
86
|
+
alert('Unknown state: ' + data[STATE]);
|
|
87
|
+
}
|
|
88
|
+
return data[CONTENTS1] + data[CONTENTS2];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
// Generate html for node
|
|
93
|
+
function uttk_node ( node )
|
|
94
|
+
{
|
|
95
|
+
if (node[STATE] == 0)
|
|
96
|
+
return "";
|
|
97
|
+
else
|
|
98
|
+
return uttk_display(node[CONTENTS3]);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
// Generate html for leaf
|
|
103
|
+
function uttk_leaf ( leaf )
|
|
104
|
+
{
|
|
105
|
+
if (leaf[STATE] == 0)
|
|
106
|
+
return "";
|
|
107
|
+
else
|
|
108
|
+
return leaf[CONTENTS3];
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
// Display a hierachy
|
|
113
|
+
function uttk_display(data)
|
|
114
|
+
{
|
|
115
|
+
var i;
|
|
116
|
+
var source = "";
|
|
117
|
+
|
|
118
|
+
for (i = 0; i < data.length; ++i)
|
|
119
|
+
{
|
|
120
|
+
var element = data[i];
|
|
121
|
+
|
|
122
|
+
source += uttk_node_or_leaf(element)
|
|
123
|
+
|
|
124
|
+
switch (element[CLASS])
|
|
125
|
+
{
|
|
126
|
+
case "node":
|
|
127
|
+
source += uttk_node(element);
|
|
128
|
+
break;
|
|
129
|
+
case "leaf":
|
|
130
|
+
source += uttk_leaf(element);
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
alert('Unknown element type: ' + element[CLASS]);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
source += '</div>'
|
|
137
|
+
}
|
|
138
|
+
return source;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
function uttk_change_state_all ( kind, state )
|
|
143
|
+
{
|
|
144
|
+
var i;
|
|
145
|
+
|
|
146
|
+
switch ( kind )
|
|
147
|
+
{
|
|
148
|
+
case null:
|
|
149
|
+
for (i = 0; i < uttk_nodes.length; ++i)
|
|
150
|
+
if (uttk_nodes[i][STATE] != 2)
|
|
151
|
+
uttk_nodes[i][STATE] = state;
|
|
152
|
+
for (i = 0; i < uttk_leaves.length; ++i)
|
|
153
|
+
if (uttk_leaves[i][STATE] != 2)
|
|
154
|
+
uttk_leaves[i][STATE] = state;
|
|
155
|
+
break;
|
|
156
|
+
case "node":
|
|
157
|
+
for (i = 0; i < uttk_nodes.length; ++i)
|
|
158
|
+
if (uttk_nodes[i][STATE] != 2)
|
|
159
|
+
uttk_nodes[i][STATE] = state;
|
|
160
|
+
break;
|
|
161
|
+
case "leaf":
|
|
162
|
+
for (i = 0; i < uttk_leaves.length; ++i)
|
|
163
|
+
if (uttk_leaves[i][STATE] != 2)
|
|
164
|
+
uttk_leaves[i][STATE] = state;
|
|
165
|
+
break;
|
|
166
|
+
default:
|
|
167
|
+
alert('Unknown element type: ' + element[CLASS]);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
uttk_main();
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
// Expand all nodes or leaves
|
|
175
|
+
function uttk_expand_all ( kind )
|
|
176
|
+
{
|
|
177
|
+
uttk_change_state_all(kind, 1);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
// Collapse all nodes or leaves
|
|
182
|
+
function uttk_collapse_all ( kind )
|
|
183
|
+
{
|
|
184
|
+
uttk_change_state_all(kind, 0);
|
|
185
|
+
}
|