casegen 2.0.0 → 3.0.1
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.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/.rubocop.yml +109 -0
- data/.ruby-version +1 -1
- data/Gemfile +3 -1
- data/Gemfile.lock +63 -6
- data/README.md +10 -119
- data/Rakefile +9 -7
- data/bin/casegen +2 -1
- data/casegen.gemspec +13 -9
- data/doc/bounding_box.rb +37 -0
- data/doc/cart.rb +43 -0
- data/doc/expect_only.rb +28 -0
- data/doc/pricing.rb +50 -0
- data/doc/ruby_array.rb +41 -0
- data/lib/case_gen/combination.rb +38 -0
- data/lib/case_gen/combo_matcher.rb +15 -0
- data/lib/case_gen/exclude_rule.rb +50 -0
- data/lib/case_gen/expect_rule.rb +24 -0
- data/lib/case_gen/generator.rb +40 -0
- data/lib/case_gen/output/exclude.rb +6 -0
- data/lib/case_gen/output/exclude_as_table.rb +13 -0
- data/lib/case_gen/output/exclude_as_text.rb +12 -0
- data/lib/case_gen/output/exclude_inline.rb +13 -0
- data/lib/case_gen/output/exclude_inline_footnotes.rb +20 -0
- data/lib/case_gen/output.rb +66 -0
- data/lib/case_gen/rule_description.rb +11 -0
- data/lib/case_gen/set.rb +16 -0
- data/lib/casegen.rb +15 -183
- data/spec/cart_sample_spec.rb +46 -0
- data/spec/case_gen/combination_spec.rb +11 -0
- data/spec/case_gen/exclude_rule_spec.rb +17 -0
- data/spec/exclude_as_table_spec.rb +39 -0
- data/spec/exclude_as_text_spec.rb +58 -0
- data/spec/exclude_inline_footnotes_spec.rb +58 -0
- data/spec/exclude_inline_spec.rb +50 -0
- data/spec/expect_only_spec.rb +30 -0
- data/spec/spec_helper.rb +113 -0
- metadata +103 -40
- data/.idea/encodings.xml +0 -5
- data/.idea/misc.xml +0 -5
- data/.idea/modules.xml +0 -9
- data/.idea/vcs.xml +0 -7
- data/doc/calc.sample.txt +0 -13
- data/doc/cart.sample.rb +0 -3
- data/doc/cart.sample.txt +0 -33
- data/doc/ruby_array.sample.rb +0 -26
- data/lib/agents/sets/enum/by.rb +0 -244
- data/lib/agents/sets/enum/cluster.rb +0 -164
- data/lib/agents/sets/enum/inject.rb +0 -50
- data/lib/agents/sets/enum/nest.rb +0 -117
- data/lib/agents/sets/enum/op.rb +0 -283
- data/lib/agents/sets/enum/pipe.rb +0 -160
- data/lib/agents/sets/enum/tree.rb +0 -442
- data/lib/agents/sets.rb +0 -313
- data/test/agents/console_output_test.rb +0 -27
- data/test/agents/sets.test.rb +0 -227
- data/test/agents_test.rb +0 -41
- data/test/casegen.tests.rb +0 -0
- data/test/parser_test.rb +0 -163
- data/test/test_helper.rb +0 -2
data/test/parser_test.rb
DELETED
@@ -1,163 +0,0 @@
|
|
1
|
-
$LOAD_PATH << "#{__dir__}/../lib"
|
2
|
-
require 'minitest/autorun'
|
3
|
-
require 'casegen'
|
4
|
-
|
5
|
-
include CLabs::CaseGen
|
6
|
-
|
7
|
-
class SampleAgent < Agent
|
8
|
-
def SampleAgent.agent_id
|
9
|
-
"sample"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Foo < Agent
|
14
|
-
def Foo.agent_id
|
15
|
-
"foo"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class TestParser < Minitest::Test
|
20
|
-
def setup
|
21
|
-
Agents.instance.register(SampleAgent)
|
22
|
-
Agents.instance.register(Foo)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_parse
|
26
|
-
data = <<~CASEDATA
|
27
|
-
sample
|
28
|
-
------
|
29
|
-
sample_data
|
30
|
-
|
31
|
-
foo
|
32
|
-
---
|
33
|
-
sample_data
|
34
|
-
|
35
|
-
sample(foo, sample)
|
36
|
-
------------
|
37
|
-
sample_data
|
38
|
-
plus
|
39
|
-
some extra
|
40
|
-
CASEDATA
|
41
|
-
|
42
|
-
parser = Parser.new(data)
|
43
|
-
assert_equal(3, parser.agents.length)
|
44
|
-
|
45
|
-
sample_a = parser.agents[0]
|
46
|
-
foo = parser.agents[1]
|
47
|
-
sample_b = parser.agents[2]
|
48
|
-
assert_equal(SampleAgent, sample_a.class)
|
49
|
-
assert_equal("sample_data", sample_a.data)
|
50
|
-
assert_equal([], sample_a.reference_agents)
|
51
|
-
|
52
|
-
assert_equal(Foo, foo.class)
|
53
|
-
assert_equal("sample_data", foo.data)
|
54
|
-
assert_equal([], foo.reference_agents)
|
55
|
-
|
56
|
-
assert_equal(SampleAgent, sample_b.class)
|
57
|
-
assert_equal("sample_data\nplus\n some extra", sample_b.data)
|
58
|
-
assert_equal([foo, sample_a], sample_b.reference_agents)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_parse_no_sets
|
62
|
-
data = <<~CASEDATA
|
63
|
-
CASEDATA
|
64
|
-
|
65
|
-
parser = Parser.new(data)
|
66
|
-
assert_equal(0, parser.agents.length)
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_parse_agent_with_missing_hyphen_line
|
70
|
-
data = <<~CASEDATA
|
71
|
-
sample
|
72
|
-
|
73
|
-
sample_data
|
74
|
-
CASEDATA
|
75
|
-
|
76
|
-
Parser.new(data)
|
77
|
-
fail("should have thrown")
|
78
|
-
rescue ParserException => e
|
79
|
-
assert_equal("Expected hyphen line after the agent declaration for <SampleAgent>", e.message)
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_parse_agent_name_without_dash_delimiter
|
83
|
-
data = <<~CASEDATA
|
84
|
-
sample
|
85
|
-
CASEDATA
|
86
|
-
|
87
|
-
Parser.new(data)
|
88
|
-
fail("should have thrown")
|
89
|
-
rescue ParserException => e
|
90
|
-
assert_equal("Expected hyphen line after the agent declaration for <SampleAgent>", e.message)
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_parse_agent_name_without_dash_delimiter_and_empty_line_to_start
|
94
|
-
data = <<~CASEDATA
|
95
|
-
|
96
|
-
sample
|
97
|
-
CASEDATA
|
98
|
-
|
99
|
-
Parser.new(data)
|
100
|
-
fail("should have thrown")
|
101
|
-
rescue ParserException => e
|
102
|
-
assert_equal("Expected hyphen line after the agent declaration for <SampleAgent>", e.message)
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_parse_just_agent_with_underline
|
106
|
-
data = <<~CASEDATA
|
107
|
-
sample
|
108
|
-
-
|
109
|
-
CASEDATA
|
110
|
-
|
111
|
-
parser = Parser.new(data)
|
112
|
-
assert_equal(1, parser.agents.length)
|
113
|
-
sample = parser.agents[0]
|
114
|
-
assert_equal(SampleAgent, sample.class)
|
115
|
-
assert_equal("", sample.data)
|
116
|
-
assert_equal([], sample.reference_agents)
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_parse_just_agent_with_empty_data
|
120
|
-
data = <<~CASEDATA
|
121
|
-
sample
|
122
|
-
-
|
123
|
-
|
124
|
-
CASEDATA
|
125
|
-
|
126
|
-
parser = Parser.new(data)
|
127
|
-
assert_equal(1, parser.agents.length)
|
128
|
-
sample = parser.agents[0]
|
129
|
-
assert_equal(SampleAgent, sample.class)
|
130
|
-
assert_equal("", sample.data)
|
131
|
-
assert_equal([], sample.reference_agents)
|
132
|
-
end
|
133
|
-
|
134
|
-
def test_parse_invalid_agent
|
135
|
-
data = <<~CASEDATA
|
136
|
-
sermple
|
137
|
-
------
|
138
|
-
sample_data
|
139
|
-
CASEDATA
|
140
|
-
|
141
|
-
begin
|
142
|
-
Parser.new(data)
|
143
|
-
fail("should throw")
|
144
|
-
rescue ParserException
|
145
|
-
# expected
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_parse_invalid_referenced_agent
|
150
|
-
data = <<~CASEDATA
|
151
|
-
sample(fu)
|
152
|
-
------
|
153
|
-
sample_data
|
154
|
-
CASEDATA
|
155
|
-
|
156
|
-
begin
|
157
|
-
Parser.new(data)
|
158
|
-
fail("should throw")
|
159
|
-
rescue ParserException
|
160
|
-
# expected
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
data/test/test_helper.rb
DELETED