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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +109 -0
  4. data/.ruby-version +1 -1
  5. data/Gemfile +3 -1
  6. data/Gemfile.lock +63 -6
  7. data/README.md +10 -119
  8. data/Rakefile +9 -7
  9. data/bin/casegen +2 -1
  10. data/casegen.gemspec +13 -9
  11. data/doc/bounding_box.rb +37 -0
  12. data/doc/cart.rb +43 -0
  13. data/doc/expect_only.rb +28 -0
  14. data/doc/pricing.rb +50 -0
  15. data/doc/ruby_array.rb +41 -0
  16. data/lib/case_gen/combination.rb +38 -0
  17. data/lib/case_gen/combo_matcher.rb +15 -0
  18. data/lib/case_gen/exclude_rule.rb +50 -0
  19. data/lib/case_gen/expect_rule.rb +24 -0
  20. data/lib/case_gen/generator.rb +40 -0
  21. data/lib/case_gen/output/exclude.rb +6 -0
  22. data/lib/case_gen/output/exclude_as_table.rb +13 -0
  23. data/lib/case_gen/output/exclude_as_text.rb +12 -0
  24. data/lib/case_gen/output/exclude_inline.rb +13 -0
  25. data/lib/case_gen/output/exclude_inline_footnotes.rb +20 -0
  26. data/lib/case_gen/output.rb +66 -0
  27. data/lib/case_gen/rule_description.rb +11 -0
  28. data/lib/case_gen/set.rb +16 -0
  29. data/lib/casegen.rb +15 -183
  30. data/spec/cart_sample_spec.rb +46 -0
  31. data/spec/case_gen/combination_spec.rb +11 -0
  32. data/spec/case_gen/exclude_rule_spec.rb +17 -0
  33. data/spec/exclude_as_table_spec.rb +39 -0
  34. data/spec/exclude_as_text_spec.rb +58 -0
  35. data/spec/exclude_inline_footnotes_spec.rb +58 -0
  36. data/spec/exclude_inline_spec.rb +50 -0
  37. data/spec/expect_only_spec.rb +30 -0
  38. data/spec/spec_helper.rb +113 -0
  39. metadata +103 -40
  40. data/.idea/encodings.xml +0 -5
  41. data/.idea/misc.xml +0 -5
  42. data/.idea/modules.xml +0 -9
  43. data/.idea/vcs.xml +0 -7
  44. data/doc/calc.sample.txt +0 -13
  45. data/doc/cart.sample.rb +0 -3
  46. data/doc/cart.sample.txt +0 -33
  47. data/doc/ruby_array.sample.rb +0 -26
  48. data/lib/agents/sets/enum/by.rb +0 -244
  49. data/lib/agents/sets/enum/cluster.rb +0 -164
  50. data/lib/agents/sets/enum/inject.rb +0 -50
  51. data/lib/agents/sets/enum/nest.rb +0 -117
  52. data/lib/agents/sets/enum/op.rb +0 -283
  53. data/lib/agents/sets/enum/pipe.rb +0 -160
  54. data/lib/agents/sets/enum/tree.rb +0 -442
  55. data/lib/agents/sets.rb +0 -313
  56. data/test/agents/console_output_test.rb +0 -27
  57. data/test/agents/sets.test.rb +0 -227
  58. data/test/agents_test.rb +0 -41
  59. data/test/casegen.tests.rb +0 -0
  60. data/test/parser_test.rb +0 -163
  61. 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
@@ -1,2 +0,0 @@
1
- require 'minitest/autorun'
2
- require_relative '../lib/casegen'