stamina 0.3.1 → 0.4.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/CHANGELOG.md +24 -0
- data/Gemfile.lock +5 -1
- data/bin/stamina +10 -0
- data/lib/stamina.rb +2 -1
- data/lib/stamina/abbadingo.rb +2 -0
- data/lib/stamina/abbadingo/random_dfa.rb +48 -0
- data/lib/stamina/abbadingo/random_sample.rb +146 -0
- data/lib/stamina/adl.rb +6 -6
- data/lib/stamina/automaton.rb +29 -4
- data/lib/stamina/automaton/complete.rb +36 -0
- data/lib/stamina/automaton/equivalence.rb +55 -0
- data/lib/stamina/automaton/metrics.rb +8 -1
- data/lib/stamina/automaton/minimize.rb +25 -0
- data/lib/stamina/automaton/minimize/hopcroft.rb +116 -0
- data/lib/stamina/automaton/minimize/pitchies.rb +64 -0
- data/lib/stamina/automaton/strip.rb +16 -0
- data/lib/stamina/automaton/walking.rb +46 -19
- data/lib/stamina/command.rb +45 -0
- data/lib/stamina/command/abbadingo_dfa.rb +81 -0
- data/lib/stamina/command/abbadingo_samples.rb +40 -0
- data/lib/stamina/command/adl2dot.rb +71 -0
- data/lib/stamina/command/classify.rb +48 -0
- data/lib/stamina/command/help.rb +27 -0
- data/lib/stamina/command/infer.rb +141 -0
- data/lib/stamina/command/metrics.rb +51 -0
- data/lib/stamina/command/robustness.rb +22 -0
- data/lib/stamina/command/score.rb +35 -0
- data/lib/stamina/errors.rb +4 -1
- data/lib/stamina/ext/math.rb +20 -0
- data/lib/stamina/induction/{redblue.rb → blue_fringe.rb} +29 -28
- data/lib/stamina/induction/commons.rb +32 -46
- data/lib/stamina/induction/rpni.rb +7 -9
- data/lib/stamina/induction/union_find.rb +3 -3
- data/lib/stamina/loader.rb +1 -0
- data/lib/stamina/sample.rb +79 -2
- data/lib/stamina/scoring.rb +37 -0
- data/lib/stamina/version.rb +2 -2
- data/stamina.gemspec +2 -1
- data/stamina.noespec +9 -12
- data/test/stamina/abbadingo/random_dfa_test.rb +16 -0
- data/test/stamina/abbadingo/random_sample_test.rb +78 -0
- data/test/stamina/adl_test.rb +27 -2
- data/test/stamina/automaton/complete_test.rb +58 -0
- data/test/stamina/automaton/equivalence_test.rb +120 -0
- data/test/stamina/automaton/minimize/hopcroft_test.rb +15 -0
- data/test/stamina/automaton/minimize/minimize_test.rb +55 -0
- data/test/stamina/automaton/minimize/pitchies_test.rb +15 -0
- data/test/stamina/automaton/minimize/rice_edu_10.adl +16 -0
- data/test/stamina/automaton/minimize/rice_edu_10.min.adl +13 -0
- data/test/stamina/automaton/minimize/rice_edu_13.adl +13 -0
- data/test/stamina/automaton/minimize/rice_edu_13.min.adl +7 -0
- data/test/stamina/automaton/minimize/should_strip_1.adl +8 -0
- data/test/stamina/automaton/minimize/should_strip_1.min.adl +6 -0
- data/test/stamina/automaton/minimize/unknown_1.adl +16 -0
- data/test/stamina/automaton/minimize/unknown_1.min.adl +12 -0
- data/test/stamina/automaton/strip_test.rb +36 -0
- data/test/stamina/automaton/walking/dfa_delta_test.rb +39 -0
- data/test/stamina/automaton_test.rb +13 -1
- data/test/stamina/induction/{redblue_test.rb → blue_fringe_test.rb} +22 -22
- data/test/stamina/sample_test.rb +75 -0
- data/test/stamina/stamina_test.rb +13 -2
- metadata +98 -23
- data/bin/adl2dot +0 -12
- data/bin/classify +0 -12
- data/bin/redblue +0 -12
- data/bin/rpni +0 -12
- data/lib/stamina/command/adl2dot_command.rb +0 -73
- data/lib/stamina/command/classify_command.rb +0 -57
- data/lib/stamina/command/redblue_command.rb +0 -58
- data/lib/stamina/command/rpni_command.rb +0 -58
- data/lib/stamina/command/stamina_command.rb +0 -79
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path("../minimize_test", __FILE__)
|
2
|
+
module Stamina
|
3
|
+
class Automaton
|
4
|
+
module Minimize
|
5
|
+
class PitchiesTest < MinimizeTest
|
6
|
+
|
7
|
+
def algo
|
8
|
+
Pitchies
|
9
|
+
end
|
10
|
+
|
11
|
+
end # class PitchiesTest
|
12
|
+
end # module Minimize
|
13
|
+
end # class Automaton
|
14
|
+
end # module Stamina
|
15
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'stamina/adl'
|
3
|
+
require 'stamina/stamina_test'
|
4
|
+
module Stamina
|
5
|
+
class Automaton
|
6
|
+
class StripTest < StaminaTest
|
7
|
+
|
8
|
+
def test_on_all_reachable
|
9
|
+
assert_equivalent @small_dfa, @small_dfa.strip
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_with_unreachable_states
|
13
|
+
dfa = Stamina::ADL.parse_automaton <<-EOF
|
14
|
+
3 3
|
15
|
+
0 true false
|
16
|
+
1 false true
|
17
|
+
2 false false
|
18
|
+
0 1 a
|
19
|
+
1 0 b
|
20
|
+
2 1 a
|
21
|
+
EOF
|
22
|
+
expected = Stamina::ADL.parse_automaton <<-EOF
|
23
|
+
2 2
|
24
|
+
0 true false
|
25
|
+
1 false true
|
26
|
+
0 1 a
|
27
|
+
1 0 b
|
28
|
+
EOF
|
29
|
+
assert_not_equivalent(expected, dfa)
|
30
|
+
assert_equivalent(expected, dfa.strip)
|
31
|
+
end
|
32
|
+
|
33
|
+
end # class StripTest
|
34
|
+
end # class Automaton
|
35
|
+
end # module Stamina
|
36
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'stamina/stamina_test'
|
3
|
+
module Stamina
|
4
|
+
class Automaton
|
5
|
+
# Tests Walking module on Automaton class
|
6
|
+
class WalkingTestDfaDelta < StaminaTest
|
7
|
+
|
8
|
+
DFA = Stamina::ADL::parse_automaton <<-EOF
|
9
|
+
2 3
|
10
|
+
0 true false
|
11
|
+
1 false true
|
12
|
+
0 1 a
|
13
|
+
1 0 b
|
14
|
+
1 1 a
|
15
|
+
EOF
|
16
|
+
S0 = DFA.ith_state(0)
|
17
|
+
S1 = DFA.ith_state(1)
|
18
|
+
|
19
|
+
def test_with_single_state_as_from
|
20
|
+
assert_equal S1, DFA.dfa_delta(S0, 'a')
|
21
|
+
assert_equal S1, DFA.dfa_delta(0, 'a')
|
22
|
+
assert_equal S0, DFA.dfa_delta(1, 'b')
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_with_single_array_as_from
|
26
|
+
assert_equal [S1], DFA.dfa_delta([S0], 'a')
|
27
|
+
assert_equal [S1], DFA.dfa_delta([0], 'a')
|
28
|
+
assert_equal [S0], DFA.dfa_delta([1], 'b')
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_with_multiple_array_as_from
|
32
|
+
assert_equal [S1], DFA.dfa_delta([S0, S1], 'a')
|
33
|
+
assert_equal [S1], DFA.dfa_delta([0, 1], 'a')
|
34
|
+
assert_equal [S0], DFA.dfa_delta([0, 1], 'b')
|
35
|
+
end
|
36
|
+
|
37
|
+
end # class WalkingTestDfaDelta
|
38
|
+
end # class Automaton
|
39
|
+
end # module Stamina
|
@@ -4,6 +4,18 @@ module Stamina
|
|
4
4
|
|
5
5
|
class AutomatonTest < StaminaTest
|
6
6
|
|
7
|
+
def test_state_sink_q
|
8
|
+
x, y = nil, nil
|
9
|
+
Automaton.new(true) do |fa|
|
10
|
+
x = fa.add_state(:initial => true, :accepting => true)
|
11
|
+
y = fa.add_state(:initial => false, :accepting => false)
|
12
|
+
fa.connect(0,1,'a')
|
13
|
+
fa.connect(1,1,'b')
|
14
|
+
end
|
15
|
+
assert_equal false, x.sink?
|
16
|
+
assert_equal true, y.sink?
|
17
|
+
end
|
18
|
+
|
7
19
|
# Tests that an automaton can be created with onself=true
|
8
20
|
def test_new_on_self
|
9
21
|
Automaton.new(true) do |fa|
|
@@ -1089,4 +1101,4 @@ module Stamina
|
|
1089
1101
|
|
1090
1102
|
end
|
1091
1103
|
|
1092
|
-
end # module Stamina
|
1104
|
+
end # module Stamina
|
@@ -1,28 +1,28 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "induction_test")
|
2
2
|
module Stamina
|
3
3
|
module Induction
|
4
|
-
class
|
4
|
+
class BlueFringeTest < Stamina::Induction::InductionTest
|
5
5
|
|
6
|
-
# Factors a ready to be tested
|
7
|
-
def
|
8
|
-
|
9
|
-
|
6
|
+
# Factors a ready to be tested BlueFringe instance
|
7
|
+
def blue_fringe(ufds)
|
8
|
+
blue_fringe = Stamina::Induction::BlueFringe.new(:verbose => false)
|
9
|
+
blue_fringe.instance_eval do
|
10
10
|
@ufds = ufds
|
11
11
|
end
|
12
|
-
|
12
|
+
blue_fringe
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_merge_and_determinize_score
|
16
|
-
|
17
|
-
assert_equal nil,
|
18
|
-
assert_equal 1,
|
19
|
-
assert_equal 1,
|
16
|
+
blue_fringe = blue_fringe(factor_ufds)
|
17
|
+
assert_equal nil, blue_fringe.merge_and_determinize_score(1, 0)
|
18
|
+
assert_equal 1, blue_fringe.merge_and_determinize_score(1, 3)
|
19
|
+
assert_equal 1, blue_fringe.merge_and_determinize_score(2, 0)
|
20
20
|
end
|
21
21
|
|
22
22
|
def test_main_whole_execution
|
23
23
|
ufds = factor_ufds
|
24
|
-
|
25
|
-
assert_equal [0, 1, 0, 1, 0, 1, 0, 0, 1, 0],
|
24
|
+
blue_fringe = blue_fringe(ufds)
|
25
|
+
assert_equal [0, 1, 0, 1, 0, 1, 0, 0, 1, 0], blue_fringe.main(ufds).to_a
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_execute_whole_execution
|
@@ -35,7 +35,7 @@ module Stamina
|
|
35
35
|
1 0 b
|
36
36
|
1 1 a
|
37
37
|
EOF
|
38
|
-
dfa =
|
38
|
+
dfa = BlueFringe.execute(@sample)
|
39
39
|
assert_equal true, @sample.correctly_classified_by?(dfa)
|
40
40
|
assert_equal @sample.signature, dfa.signature(@sample)
|
41
41
|
assert_nil equivalent?(expected, dfa)
|
@@ -48,7 +48,7 @@ module Stamina
|
|
48
48
|
sample = Stamina::ADL.parse_sample_file(sample_file)
|
49
49
|
expected = Stamina::ADL.parse_automaton_file(File.join(here, "redblue_#{name}_expected.adl"))
|
50
50
|
assert sample.correctly_classified_by?(expected)
|
51
|
-
dfa =
|
51
|
+
dfa = BlueFringe.execute(sample)
|
52
52
|
assert sample.correctly_classified_by?(dfa)
|
53
53
|
assert_equal sample.signature, dfa.signature(sample)
|
54
54
|
assert_nil equivalent?(expected, dfa)
|
@@ -59,12 +59,12 @@ module Stamina
|
|
59
59
|
def test_on_public_characteristic_example
|
60
60
|
example_folder = File.join(File.dirname(__FILE__), '..', '..', '..', 'example', 'basic')
|
61
61
|
sample = Stamina::ADL.parse_sample_file(File.join(example_folder, 'characteristic_sample.adl'))
|
62
|
-
|
63
|
-
assert_equal 4,
|
64
|
-
s0, =
|
65
|
-
s1 =
|
66
|
-
s2 =
|
67
|
-
s3 =
|
62
|
+
blue_fringed = Stamina::Induction::BlueFringe.execute(sample)
|
63
|
+
assert_equal 4, blue_fringed.state_count
|
64
|
+
s0, = blue_fringed.initial_state
|
65
|
+
s1 = blue_fringed.dfa_step(s0, 'b')
|
66
|
+
s2 = blue_fringed.dfa_step(s0, 'a')
|
67
|
+
s3 = blue_fringed.dfa_step(s2, 'b')
|
68
68
|
assert_equal true, s0.accepting?
|
69
69
|
assert_equal true, s3.accepting?
|
70
70
|
assert_equal false, s1.accepting?
|
@@ -75,9 +75,9 @@ module Stamina
|
|
75
75
|
assert_equal s3, s2.dfa_step('b')
|
76
76
|
assert_equal s3, s3.dfa_step('b')
|
77
77
|
assert_equal s0, s3.dfa_step('a')
|
78
|
-
assert_equal sample.signature,
|
78
|
+
assert_equal sample.signature, blue_fringed.signature(sample)
|
79
79
|
end
|
80
80
|
|
81
81
|
end
|
82
82
|
end
|
83
|
-
end
|
83
|
+
end
|
data/test/stamina/sample_test.rb
CHANGED
@@ -210,6 +210,81 @@ module Stamina
|
|
210
210
|
SAMPLE
|
211
211
|
assert_equal '110?', s.signature
|
212
212
|
end
|
213
|
+
|
214
|
+
def test_to_pta_on_empty_sample
|
215
|
+
empty = Stamina::ADL::parse_automaton <<-EOF
|
216
|
+
1 0
|
217
|
+
0 true false
|
218
|
+
EOF
|
219
|
+
assert_equivalent empty, Sample.new.to_pta
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_to_pta_on_lambda_accepting_sample
|
223
|
+
dfa = Stamina::ADL::parse_automaton <<-EOF
|
224
|
+
1 0
|
225
|
+
0 true true false
|
226
|
+
EOF
|
227
|
+
sample = Stamina::ADL::parse_sample <<-EOF
|
228
|
+
+
|
229
|
+
EOF
|
230
|
+
assert_equivalent dfa, sample.to_pta
|
231
|
+
end
|
232
|
+
|
233
|
+
def test_to_pta_on_lambda_rejecting_sample
|
234
|
+
dfa = Stamina::ADL::parse_automaton <<-EOF
|
235
|
+
1 0
|
236
|
+
0 true false true
|
237
|
+
EOF
|
238
|
+
sample = Stamina::ADL::parse_sample <<-EOF
|
239
|
+
-
|
240
|
+
EOF
|
241
|
+
assert_equivalent dfa, sample.to_pta
|
242
|
+
end
|
243
|
+
|
244
|
+
def test_to_pta_respects_natural_ordering
|
245
|
+
dfa = Stamina::ADL::parse_automaton <<-EOF
|
246
|
+
3 2
|
247
|
+
0 true false
|
248
|
+
1 false true
|
249
|
+
2 false true
|
250
|
+
0 1 a
|
251
|
+
0 2 b
|
252
|
+
EOF
|
253
|
+
sample = Stamina::ADL::parse_sample <<-EOF
|
254
|
+
+ a
|
255
|
+
+ b
|
256
|
+
EOF
|
257
|
+
pta = sample.to_pta
|
258
|
+
assert_equivalent dfa, pta
|
259
|
+
assert_equal pta.ith_state(1), pta.dfa_reached("? a")
|
260
|
+
assert_equal pta.ith_state(2), pta.dfa_reached("? b")
|
261
|
+
end
|
262
|
+
|
263
|
+
def test_to_pta_on_realcase_example
|
264
|
+
dfa = Stamina::ADL::parse_automaton <<-EOF
|
265
|
+
5 4
|
266
|
+
0 true true
|
267
|
+
1 false true
|
268
|
+
2 false false true
|
269
|
+
3 false false true
|
270
|
+
4 false true
|
271
|
+
0 1 a
|
272
|
+
0 2 b
|
273
|
+
1 3 b
|
274
|
+
2 4 a
|
275
|
+
EOF
|
276
|
+
sample = Stamina::ADL::parse_sample <<-EOF
|
277
|
+
+
|
278
|
+
+ a
|
279
|
+
+ b a
|
280
|
+
- a b
|
281
|
+
- b
|
282
|
+
EOF
|
283
|
+
pta = sample.to_pta
|
284
|
+
assert_equivalent dfa, pta
|
285
|
+
assert_equal pta.ith_state(3), pta.dfa_reached("? a b")
|
286
|
+
assert_equal pta.ith_state(4), pta.dfa_reached("? b a")
|
287
|
+
end
|
213
288
|
|
214
289
|
end # class SampleTest
|
215
290
|
end # module Stamina
|
@@ -18,6 +18,10 @@ module Stamina
|
|
18
18
|
# - @nfa_examples is an array containing non-deterministic automaton only.
|
19
19
|
#
|
20
20
|
class StaminaTest < Test::Unit::TestCase
|
21
|
+
|
22
|
+
def load_adl_automaton(file, resolver)
|
23
|
+
Stamina::ADL.parse_automaton_file(File.expand_path("../#{file}", resolver))
|
24
|
+
end
|
21
25
|
|
22
26
|
# Creates a small automaton for the sake of simple tests
|
23
27
|
def setup
|
@@ -64,6 +68,13 @@ module Stamina
|
|
64
68
|
end
|
65
69
|
end
|
66
70
|
|
67
|
-
|
71
|
+
def assert_not_equivalent(expected, dfa)
|
72
|
+
assert !expected.complete.equivalent?(dfa.complete)
|
73
|
+
end
|
74
|
+
|
75
|
+
def assert_equivalent(expected, dfa)
|
76
|
+
assert expected.complete.equivalent?(dfa.complete)
|
77
|
+
end
|
68
78
|
|
69
|
-
end #
|
79
|
+
end # class StaminaTest
|
80
|
+
end # module Stamina
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stamina
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bernard Lambeau
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-03
|
18
|
+
date: 2011-05-03 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -113,16 +113,45 @@ dependencies:
|
|
113
113
|
name: wlang
|
114
114
|
version_requirements: *id006
|
115
115
|
prerelease: false
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
type: :development
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ~>
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 15
|
124
|
+
segments:
|
125
|
+
- 2
|
126
|
+
- 3
|
127
|
+
- 6
|
128
|
+
version: 2.3.6
|
129
|
+
name: gnuplot
|
130
|
+
version_requirements: *id007
|
131
|
+
prerelease: false
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
type: :runtime
|
134
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
hash: 23
|
140
|
+
segments:
|
141
|
+
- 0
|
142
|
+
- 2
|
143
|
+
- 0
|
144
|
+
version: 0.2.0
|
145
|
+
name: quickl
|
146
|
+
version_requirements: *id008
|
147
|
+
prerelease: false
|
116
148
|
description: |-
|
117
149
|
Stamina is an automaton and regular inference toolkit initially developped for the baseline
|
118
150
|
of the Stamina Competition (stamina.chefbe.net).
|
119
151
|
email:
|
120
152
|
- blambeau@gmail.com
|
121
153
|
executables:
|
122
|
-
-
|
123
|
-
- classify
|
124
|
-
- redblue
|
125
|
-
- rpni
|
154
|
+
- stamina
|
126
155
|
extensions: []
|
127
156
|
|
128
157
|
extra_rdoc_files:
|
@@ -130,10 +159,7 @@ extra_rdoc_files:
|
|
130
159
|
- CHANGELOG.md
|
131
160
|
- LICENCE.md
|
132
161
|
files:
|
133
|
-
- bin/
|
134
|
-
- bin/classify
|
135
|
-
- bin/redblue
|
136
|
-
- bin/rpni
|
162
|
+
- bin/stamina
|
137
163
|
- example/adl/automaton.adl
|
138
164
|
- example/adl/sample.adl
|
139
165
|
- example/basic/characteristic_sample.adl
|
@@ -145,17 +171,27 @@ files:
|
|
145
171
|
- lib/stamina/automaton.rb
|
146
172
|
- lib/stamina/automaton/walking.rb
|
147
173
|
- lib/stamina/automaton/metrics.rb
|
174
|
+
- lib/stamina/automaton/complete.rb
|
175
|
+
- lib/stamina/automaton/minimize.rb
|
176
|
+
- lib/stamina/automaton/equivalence.rb
|
177
|
+
- lib/stamina/automaton/minimize/hopcroft.rb
|
178
|
+
- lib/stamina/automaton/minimize/pitchies.rb
|
179
|
+
- lib/stamina/automaton/strip.rb
|
148
180
|
- lib/stamina/classifier.rb
|
149
|
-
- lib/stamina/command/
|
150
|
-
- lib/stamina/command/
|
151
|
-
- lib/stamina/command/
|
152
|
-
- lib/stamina/command/
|
153
|
-
- lib/stamina/command/
|
181
|
+
- lib/stamina/command/score.rb
|
182
|
+
- lib/stamina/command/infer.rb
|
183
|
+
- lib/stamina/command/help.rb
|
184
|
+
- lib/stamina/command/abbadingo_dfa.rb
|
185
|
+
- lib/stamina/command/metrics.rb
|
186
|
+
- lib/stamina/command/abbadingo_samples.rb
|
187
|
+
- lib/stamina/command/classify.rb
|
188
|
+
- lib/stamina/command/robustness.rb
|
189
|
+
- lib/stamina/command/adl2dot.rb
|
154
190
|
- lib/stamina/errors.rb
|
155
191
|
- lib/stamina/induction/commons.rb
|
156
|
-
- lib/stamina/induction/redblue.rb
|
157
192
|
- lib/stamina/induction/rpni.rb
|
158
193
|
- lib/stamina/induction/union_find.rb
|
194
|
+
- lib/stamina/induction/blue_fringe.rb
|
159
195
|
- lib/stamina/input_string.rb
|
160
196
|
- lib/stamina/markable.rb
|
161
197
|
- lib/stamina/sample.rb
|
@@ -164,6 +200,11 @@ files:
|
|
164
200
|
- lib/stamina/scoring.rb
|
165
201
|
- lib/stamina/utils/decorate.rb
|
166
202
|
- lib/stamina/utils.rb
|
203
|
+
- lib/stamina/abbadingo.rb
|
204
|
+
- lib/stamina/abbadingo/random_dfa.rb
|
205
|
+
- lib/stamina/abbadingo/random_sample.rb
|
206
|
+
- lib/stamina/command.rb
|
207
|
+
- lib/stamina/ext/math.rb
|
167
208
|
- tasks/yard.rake
|
168
209
|
- tasks/debug_mail.txt
|
169
210
|
- tasks/gem.rake
|
@@ -174,21 +215,23 @@ files:
|
|
174
215
|
- test/stamina/automaton_additional_test.rb
|
175
216
|
- test/stamina/automaton_test.rb
|
176
217
|
- test/stamina/scoring_test.rb
|
218
|
+
- test/stamina/abbadingo/random_dfa_test.rb
|
219
|
+
- test/stamina/abbadingo/random_sample_test.rb
|
177
220
|
- test/stamina/exit.rb
|
178
221
|
- test/stamina/induction/induction_test.rb
|
179
222
|
- test/stamina/induction/redblue_mergesamestatebug_expected.adl
|
180
223
|
- test/stamina/induction/redblue_mergesamestatebug_pta.dot
|
181
224
|
- test/stamina/induction/redblue_mergesamestatebug_sample.adl
|
182
|
-
- test/stamina/induction/
|
225
|
+
- test/stamina/induction/rpni_test.rb
|
183
226
|
- test/stamina/induction/redblue_universal_expected.adl
|
184
227
|
- test/stamina/induction/redblue_universal_sample.adl
|
185
228
|
- test/stamina/induction/rpni_inria_expected.adl
|
186
229
|
- test/stamina/induction/rpni_inria_sample.adl
|
187
|
-
- test/stamina/induction/rpni_test.rb
|
188
230
|
- test/stamina/induction/rpni_test_pta.dot
|
189
231
|
- test/stamina/induction/rpni_universal_expected.adl
|
190
232
|
- test/stamina/induction/rpni_universal_sample.adl
|
191
233
|
- test/stamina/induction/union_find_test.rb
|
234
|
+
- test/stamina/induction/blue_fringe_test.rb
|
192
235
|
- test/stamina/input_string_test.rb
|
193
236
|
- test/stamina/markable_test.rb
|
194
237
|
- test/stamina/randdfa.adl
|
@@ -205,6 +248,21 @@ files:
|
|
205
248
|
- test/stamina/automaton/walking_test.rb
|
206
249
|
- test/stamina/automaton/to_dot_test.rb
|
207
250
|
- test/stamina/automaton/metrics_test.rb
|
251
|
+
- test/stamina/automaton/walking/dfa_delta_test.rb
|
252
|
+
- test/stamina/automaton/equivalence_test.rb
|
253
|
+
- test/stamina/automaton/strip_test.rb
|
254
|
+
- test/stamina/automaton/complete_test.rb
|
255
|
+
- test/stamina/automaton/minimize/minimize_test.rb
|
256
|
+
- test/stamina/automaton/minimize/rice_edu_13.adl
|
257
|
+
- test/stamina/automaton/minimize/rice_edu_13.min.adl
|
258
|
+
- test/stamina/automaton/minimize/rice_edu_10.adl
|
259
|
+
- test/stamina/automaton/minimize/rice_edu_10.min.adl
|
260
|
+
- test/stamina/automaton/minimize/pitchies_test.rb
|
261
|
+
- test/stamina/automaton/minimize/unknown_1.adl
|
262
|
+
- test/stamina/automaton/minimize/unknown_1.min.adl
|
263
|
+
- test/stamina/automaton/minimize/hopcroft_test.rb
|
264
|
+
- test/stamina/automaton/minimize/should_strip_1.adl
|
265
|
+
- test/stamina/automaton/minimize/should_strip_1.min.adl
|
208
266
|
- test/test_all.rb
|
209
267
|
- .gemtest
|
210
268
|
- CHANGELOG.md
|
@@ -255,21 +313,23 @@ test_files:
|
|
255
313
|
- test/stamina/automaton_additional_test.rb
|
256
314
|
- test/stamina/automaton_test.rb
|
257
315
|
- test/stamina/scoring_test.rb
|
316
|
+
- test/stamina/abbadingo/random_dfa_test.rb
|
317
|
+
- test/stamina/abbadingo/random_sample_test.rb
|
258
318
|
- test/stamina/exit.rb
|
259
319
|
- test/stamina/induction/induction_test.rb
|
260
320
|
- test/stamina/induction/redblue_mergesamestatebug_expected.adl
|
261
321
|
- test/stamina/induction/redblue_mergesamestatebug_pta.dot
|
262
322
|
- test/stamina/induction/redblue_mergesamestatebug_sample.adl
|
263
|
-
- test/stamina/induction/
|
323
|
+
- test/stamina/induction/rpni_test.rb
|
264
324
|
- test/stamina/induction/redblue_universal_expected.adl
|
265
325
|
- test/stamina/induction/redblue_universal_sample.adl
|
266
326
|
- test/stamina/induction/rpni_inria_expected.adl
|
267
327
|
- test/stamina/induction/rpni_inria_sample.adl
|
268
|
-
- test/stamina/induction/rpni_test.rb
|
269
328
|
- test/stamina/induction/rpni_test_pta.dot
|
270
329
|
- test/stamina/induction/rpni_universal_expected.adl
|
271
330
|
- test/stamina/induction/rpni_universal_sample.adl
|
272
331
|
- test/stamina/induction/union_find_test.rb
|
332
|
+
- test/stamina/induction/blue_fringe_test.rb
|
273
333
|
- test/stamina/input_string_test.rb
|
274
334
|
- test/stamina/markable_test.rb
|
275
335
|
- test/stamina/randdfa.adl
|
@@ -286,4 +346,19 @@ test_files:
|
|
286
346
|
- test/stamina/automaton/walking_test.rb
|
287
347
|
- test/stamina/automaton/to_dot_test.rb
|
288
348
|
- test/stamina/automaton/metrics_test.rb
|
349
|
+
- test/stamina/automaton/walking/dfa_delta_test.rb
|
350
|
+
- test/stamina/automaton/equivalence_test.rb
|
351
|
+
- test/stamina/automaton/strip_test.rb
|
352
|
+
- test/stamina/automaton/complete_test.rb
|
353
|
+
- test/stamina/automaton/minimize/minimize_test.rb
|
354
|
+
- test/stamina/automaton/minimize/rice_edu_13.adl
|
355
|
+
- test/stamina/automaton/minimize/rice_edu_13.min.adl
|
356
|
+
- test/stamina/automaton/minimize/rice_edu_10.adl
|
357
|
+
- test/stamina/automaton/minimize/rice_edu_10.min.adl
|
358
|
+
- test/stamina/automaton/minimize/pitchies_test.rb
|
359
|
+
- test/stamina/automaton/minimize/unknown_1.adl
|
360
|
+
- test/stamina/automaton/minimize/unknown_1.min.adl
|
361
|
+
- test/stamina/automaton/minimize/hopcroft_test.rb
|
362
|
+
- test/stamina/automaton/minimize/should_strip_1.adl
|
363
|
+
- test/stamina/automaton/minimize/should_strip_1.min.adl
|
289
364
|
- test/test_all.rb
|