csvops 0.6.0.alpha → 0.8.0.alpha

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +103 -24
  3. data/docs/architecture.md +121 -4
  4. data/docs/release-v0.7.0-alpha.md +87 -0
  5. data/docs/release-v0.8.0-alpha.md +88 -0
  6. data/lib/csvtool/application/use_cases/run_csv_split.rb +97 -0
  7. data/lib/csvtool/application/use_cases/run_csv_stats.rb +64 -0
  8. data/lib/csvtool/cli.rb +9 -1
  9. data/lib/csvtool/domain/csv_split_session/split_options.rb +27 -0
  10. data/lib/csvtool/domain/csv_split_session/split_session.rb +20 -0
  11. data/lib/csvtool/domain/csv_split_session/split_source.rb +17 -0
  12. data/lib/csvtool/domain/csv_stats_session/stats_options.rb +11 -0
  13. data/lib/csvtool/domain/csv_stats_session/stats_session.rb +25 -0
  14. data/lib/csvtool/domain/csv_stats_session/stats_source.rb +17 -0
  15. data/lib/csvtool/infrastructure/csv/csv_splitter.rb +64 -0
  16. data/lib/csvtool/infrastructure/csv/csv_stats_scanner.rb +67 -0
  17. data/lib/csvtool/infrastructure/output/csv_split_manifest_writer.rb +20 -0
  18. data/lib/csvtool/infrastructure/output/csv_stats_file_writer.rb +26 -0
  19. data/lib/csvtool/interface/cli/errors/presenter.rb +8 -0
  20. data/lib/csvtool/interface/cli/menu_loop.rb +8 -2
  21. data/lib/csvtool/interface/cli/prompts/chunk_size_prompt.rb +21 -0
  22. data/lib/csvtool/interface/cli/prompts/split_manifest_prompt.rb +30 -0
  23. data/lib/csvtool/interface/cli/prompts/split_output_prompt.rb +38 -0
  24. data/lib/csvtool/interface/cli/workflows/builders/csv_split_session_builder.rb +44 -0
  25. data/lib/csvtool/interface/cli/workflows/builders/csv_stats_session_builder.rb +28 -0
  26. data/lib/csvtool/interface/cli/workflows/presenters/csv_split_presenter.rb +26 -0
  27. data/lib/csvtool/interface/cli/workflows/presenters/csv_stats_presenter.rb +34 -0
  28. data/lib/csvtool/interface/cli/workflows/run_csv_split_workflow.rb +89 -0
  29. data/lib/csvtool/interface/cli/workflows/run_csv_stats_workflow.rb +77 -0
  30. data/lib/csvtool/interface/cli/workflows/steps/csv_split/build_session_step.rb +30 -0
  31. data/lib/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step.rb +43 -0
  32. data/lib/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step.rb +30 -0
  33. data/lib/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step.rb +31 -0
  34. data/lib/csvtool/interface/cli/workflows/steps/csv_split/execute_step.rb +36 -0
  35. data/lib/csvtool/interface/cli/workflows/steps/csv_stats/build_session_step.rb +25 -0
  36. data/lib/csvtool/interface/cli/workflows/steps/csv_stats/collect_destination_step.rb +27 -0
  37. data/lib/csvtool/interface/cli/workflows/steps/csv_stats/collect_inputs_step.rb +31 -0
  38. data/lib/csvtool/interface/cli/workflows/steps/csv_stats/execute_step.rb +27 -0
  39. data/lib/csvtool/version.rb +1 -1
  40. data/test/csvtool/application/use_cases/run_csv_split_test.rb +124 -0
  41. data/test/csvtool/application/use_cases/run_csv_stats_test.rb +165 -0
  42. data/test/csvtool/cli_test.rb +139 -29
  43. data/test/csvtool/infrastructure/csv/csv_splitter_test.rb +68 -0
  44. data/test/csvtool/infrastructure/csv/csv_stats_scanner_test.rb +68 -0
  45. data/test/csvtool/infrastructure/output/csv_split_manifest_writer_test.rb +25 -0
  46. data/test/csvtool/infrastructure/output/csv_stats_file_writer_test.rb +38 -0
  47. data/test/csvtool/interface/cli/menu_loop_test.rb +104 -130
  48. data/test/csvtool/interface/cli/prompts/chunk_size_prompt_test.rb +17 -0
  49. data/test/csvtool/interface/cli/prompts/split_manifest_prompt_test.rb +42 -0
  50. data/test/csvtool/interface/cli/prompts/split_output_prompt_test.rb +22 -0
  51. data/test/csvtool/interface/cli/workflows/builders/csv_split_session_builder_test.rb +30 -0
  52. data/test/csvtool/interface/cli/workflows/builders/csv_stats_session_builder_test.rb +19 -0
  53. data/test/csvtool/interface/cli/workflows/presenters/csv_split_presenter_test.rb +26 -0
  54. data/test/csvtool/interface/cli/workflows/presenters/csv_stats_presenter_test.rb +37 -0
  55. data/test/csvtool/interface/cli/workflows/run_csv_split_workflow_test.rb +200 -0
  56. data/test/csvtool/interface/cli/workflows/run_csv_stats_workflow_test.rb +146 -0
  57. data/test/csvtool/interface/cli/workflows/steps/csv_split/build_session_step_test.rb +40 -0
  58. data/test/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step_test.rb +64 -0
  59. data/test/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step_test.rb +30 -0
  60. data/test/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step_test.rb +32 -0
  61. data/test/csvtool/interface/cli/workflows/steps/csv_split/execute_step_test.rb +83 -0
  62. data/test/csvtool/interface/cli/workflows/steps/csv_stats/build_session_step_test.rb +36 -0
  63. data/test/csvtool/interface/cli/workflows/steps/csv_stats/collect_destination_step_test.rb +49 -0
  64. data/test/csvtool/interface/cli/workflows/steps/csv_stats/collect_inputs_step_test.rb +61 -0
  65. data/test/csvtool/interface/cli/workflows/steps/csv_stats/execute_step_test.rb +65 -0
  66. data/test/fixtures/split_people_25.csv +26 -0
  67. metadata +58 -1
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../../../../test_helper"
4
+ require "csvtool/interface/cli/workflows/steps/csv_stats/collect_inputs_step"
5
+
6
+ class CsvStatsCollectInputsStepTest < Minitest::Test
7
+ class FakeFilePathPrompt
8
+ attr_reader :label
9
+
10
+ def call(label:)
11
+ @label = label
12
+ "/tmp/input.csv"
13
+ end
14
+ end
15
+
16
+ class FakeSeparatorPrompt
17
+ def initialize(result)
18
+ @result = result
19
+ end
20
+
21
+ def call
22
+ @result
23
+ end
24
+ end
25
+
26
+ class FakeHeadersPresentPrompt
27
+ def call
28
+ false
29
+ end
30
+ end
31
+
32
+ def test_collects_inputs_into_context
33
+ file_prompt = FakeFilePathPrompt.new
34
+ step = Csvtool::Interface::CLI::Workflows::Steps::CsvStats::CollectInputsStep.new(
35
+ file_path_prompt: file_prompt,
36
+ separator_prompt: FakeSeparatorPrompt.new(";"),
37
+ headers_present_prompt: FakeHeadersPresentPrompt.new
38
+ )
39
+ context = {}
40
+
41
+ result = step.call(context)
42
+
43
+ assert_nil result
44
+ assert_equal "CSV file path: ", file_prompt.label
45
+ assert_equal "/tmp/input.csv", context[:file_path]
46
+ assert_equal ";", context[:col_sep]
47
+ assert_equal false, context[:headers_present]
48
+ end
49
+
50
+ def test_halts_when_separator_prompt_returns_nil
51
+ step = Csvtool::Interface::CLI::Workflows::Steps::CsvStats::CollectInputsStep.new(
52
+ file_path_prompt: FakeFilePathPrompt.new,
53
+ separator_prompt: FakeSeparatorPrompt.new(nil),
54
+ headers_present_prompt: FakeHeadersPresentPrompt.new
55
+ )
56
+
57
+ result = step.call({})
58
+
59
+ assert_equal :halt, result
60
+ end
61
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../../../../test_helper"
4
+ require "csvtool/interface/cli/workflows/steps/csv_stats/execute_step"
5
+
6
+ class CsvStatsExecuteStepTest < Minitest::Test
7
+ Result = Struct.new(:ok, :data) do
8
+ def ok? = ok
9
+ end
10
+
11
+ class FakeUseCase
12
+ def initialize(result)
13
+ @result = result
14
+ end
15
+
16
+ def call(session:)
17
+ @result
18
+ end
19
+ end
20
+
21
+ class FakePresenter
22
+ attr_reader :summary_data, :written_path
23
+
24
+ def print_summary(data)
25
+ @summary_data = data
26
+ end
27
+
28
+ def print_file_written(path)
29
+ @written_path = path
30
+ end
31
+ end
32
+
33
+ def test_prints_summary_and_file_path_when_present
34
+ presenter = FakePresenter.new
35
+ result = Result.new(true, { row_count: 2, output_path: "/tmp/stats.csv" })
36
+ step = Csvtool::Interface::CLI::Workflows::Steps::CsvStats::ExecuteStep.new
37
+
38
+ outcome = step.call(
39
+ session: :session,
40
+ use_case: FakeUseCase.new(result),
41
+ presenter: presenter,
42
+ handle_error: ->(_result) { raise "unexpected" }
43
+ )
44
+
45
+ assert_nil outcome
46
+ assert_equal result.data, presenter.summary_data
47
+ assert_equal "/tmp/stats.csv", presenter.written_path
48
+ end
49
+
50
+ def test_halts_on_use_case_failure
51
+ fail_result = Result.new(false, { reason: :bad })
52
+ handled = []
53
+ step = Csvtool::Interface::CLI::Workflows::Steps::CsvStats::ExecuteStep.new
54
+
55
+ outcome = step.call(
56
+ session: :session,
57
+ use_case: FakeUseCase.new(fail_result),
58
+ presenter: FakePresenter.new,
59
+ handle_error: ->(result) { handled << result }
60
+ )
61
+
62
+ assert_equal :halt, outcome
63
+ assert_equal [fail_result], handled
64
+ end
65
+ end
@@ -0,0 +1,26 @@
1
+ name,city
2
+ Name01,City01
3
+ Name02,City02
4
+ Name03,City03
5
+ Name04,City04
6
+ Name05,City05
7
+ Name06,City06
8
+ Name07,City07
9
+ Name08,City08
10
+ Name09,City09
11
+ Name10,City10
12
+ Name11,City11
13
+ Name12,City12
14
+ Name13,City13
15
+ Name14,City14
16
+ Name15,City15
17
+ Name16,City16
18
+ Name17,City17
19
+ Name18,City18
20
+ Name19,City19
21
+ Name20,City20
22
+ Name21,City21
23
+ Name22,City22
24
+ Name23,City23
25
+ Name24,City24
26
+ Name25,City25
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csvops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0.alpha
4
+ version: 0.8.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Hall
@@ -74,9 +74,13 @@ files:
74
74
  - docs/release-v0.4.0-alpha.md
75
75
  - docs/release-v0.5.0-alpha.md
76
76
  - docs/release-v0.6.0-alpha.md
77
+ - docs/release-v0.7.0-alpha.md
78
+ - docs/release-v0.8.0-alpha.md
77
79
  - exe/csvtool
78
80
  - lib/csvtool/application/use_cases/run_cross_csv_dedupe.rb
79
81
  - lib/csvtool/application/use_cases/run_csv_parity.rb
82
+ - lib/csvtool/application/use_cases/run_csv_split.rb
83
+ - lib/csvtool/application/use_cases/run_csv_stats.rb
80
84
  - lib/csvtool/application/use_cases/run_extraction.rb
81
85
  - lib/csvtool/application/use_cases/run_row_extraction.rb
82
86
  - lib/csvtool/application/use_cases/run_row_randomization.rb
@@ -96,6 +100,12 @@ files:
96
100
  - lib/csvtool/domain/csv_parity_session/parity_options.rb
97
101
  - lib/csvtool/domain/csv_parity_session/parity_session.rb
98
102
  - lib/csvtool/domain/csv_parity_session/source_pair.rb
103
+ - lib/csvtool/domain/csv_split_session/split_options.rb
104
+ - lib/csvtool/domain/csv_split_session/split_session.rb
105
+ - lib/csvtool/domain/csv_split_session/split_source.rb
106
+ - lib/csvtool/domain/csv_stats_session/stats_options.rb
107
+ - lib/csvtool/domain/csv_stats_session/stats_session.rb
108
+ - lib/csvtool/domain/csv_stats_session/stats_source.rb
99
109
  - lib/csvtool/domain/row_randomization_session/randomization_options.rb
100
110
  - lib/csvtool/domain/row_randomization_session/randomization_session.rb
101
111
  - lib/csvtool/domain/row_randomization_session/randomization_source.rb
@@ -105,6 +115,8 @@ files:
105
115
  - lib/csvtool/domain/shared/output_destination.rb
106
116
  - lib/csvtool/infrastructure/csv/cross_csv_deduper.rb
107
117
  - lib/csvtool/infrastructure/csv/csv_parity_comparator.rb
118
+ - lib/csvtool/infrastructure/csv/csv_splitter.rb
119
+ - lib/csvtool/infrastructure/csv/csv_stats_scanner.rb
108
120
  - lib/csvtool/infrastructure/csv/header_reader.rb
109
121
  - lib/csvtool/infrastructure/csv/row_randomizer.rb
110
122
  - lib/csvtool/infrastructure/csv/row_streamer.rb
@@ -116,8 +128,11 @@ files:
116
128
  - lib/csvtool/infrastructure/output/csv_randomized_row_file_writer.rb
117
129
  - lib/csvtool/infrastructure/output/csv_row_console_writer.rb
118
130
  - lib/csvtool/infrastructure/output/csv_row_file_writer.rb
131
+ - lib/csvtool/infrastructure/output/csv_split_manifest_writer.rb
132
+ - lib/csvtool/infrastructure/output/csv_stats_file_writer.rb
119
133
  - lib/csvtool/interface/cli/errors/presenter.rb
120
134
  - lib/csvtool/interface/cli/menu_loop.rb
135
+ - lib/csvtool/interface/cli/prompts/chunk_size_prompt.rb
121
136
  - lib/csvtool/interface/cli/prompts/column_selector_prompt.rb
122
137
  - lib/csvtool/interface/cli/prompts/confirm_prompt.rb
123
138
  - lib/csvtool/interface/cli/prompts/dedupe_key_selector_prompt.rb
@@ -127,25 +142,42 @@ files:
127
142
  - lib/csvtool/interface/cli/prompts/seed_prompt.rb
128
143
  - lib/csvtool/interface/cli/prompts/separator_prompt.rb
129
144
  - lib/csvtool/interface/cli/prompts/skip_blanks_prompt.rb
145
+ - lib/csvtool/interface/cli/prompts/split_manifest_prompt.rb
146
+ - lib/csvtool/interface/cli/prompts/split_output_prompt.rb
130
147
  - lib/csvtool/interface/cli/prompts/yes_no_prompt.rb
131
148
  - lib/csvtool/interface/cli/workflows/builders/column_session_builder.rb
132
149
  - lib/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder.rb
133
150
  - lib/csvtool/interface/cli/workflows/builders/csv_parity_session_builder.rb
151
+ - lib/csvtool/interface/cli/workflows/builders/csv_split_session_builder.rb
152
+ - lib/csvtool/interface/cli/workflows/builders/csv_stats_session_builder.rb
134
153
  - lib/csvtool/interface/cli/workflows/builders/row_extraction_session_builder.rb
135
154
  - lib/csvtool/interface/cli/workflows/builders/row_randomization_session_builder.rb
136
155
  - lib/csvtool/interface/cli/workflows/presenters/column_extraction_presenter.rb
137
156
  - lib/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter.rb
138
157
  - lib/csvtool/interface/cli/workflows/presenters/csv_parity_presenter.rb
158
+ - lib/csvtool/interface/cli/workflows/presenters/csv_split_presenter.rb
159
+ - lib/csvtool/interface/cli/workflows/presenters/csv_stats_presenter.rb
139
160
  - lib/csvtool/interface/cli/workflows/presenters/row_extraction_presenter.rb
140
161
  - lib/csvtool/interface/cli/workflows/presenters/row_randomization_presenter.rb
141
162
  - lib/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow.rb
142
163
  - lib/csvtool/interface/cli/workflows/run_csv_parity_workflow.rb
164
+ - lib/csvtool/interface/cli/workflows/run_csv_split_workflow.rb
165
+ - lib/csvtool/interface/cli/workflows/run_csv_stats_workflow.rb
143
166
  - lib/csvtool/interface/cli/workflows/run_extraction_workflow.rb
144
167
  - lib/csvtool/interface/cli/workflows/run_row_extraction_workflow.rb
145
168
  - lib/csvtool/interface/cli/workflows/run_row_randomization_workflow.rb
146
169
  - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step.rb
147
170
  - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_profiles_step.rb
148
171
  - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/execute_step.rb
172
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/build_session_step.rb
173
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step.rb
174
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step.rb
175
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step.rb
176
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/execute_step.rb
177
+ - lib/csvtool/interface/cli/workflows/steps/csv_stats/build_session_step.rb
178
+ - lib/csvtool/interface/cli/workflows/steps/csv_stats/collect_destination_step.rb
179
+ - lib/csvtool/interface/cli/workflows/steps/csv_stats/collect_inputs_step.rb
180
+ - lib/csvtool/interface/cli/workflows/steps/csv_stats/execute_step.rb
149
181
  - lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb
150
182
  - lib/csvtool/interface/cli/workflows/steps/extraction/collect_destination_step.rb
151
183
  - lib/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step.rb
@@ -169,6 +201,8 @@ files:
169
201
  - test/csvtool/application/use_cases/io_boundary_test.rb
170
202
  - test/csvtool/application/use_cases/run_cross_csv_dedupe_test.rb
171
203
  - test/csvtool/application/use_cases/run_csv_parity_test.rb
204
+ - test/csvtool/application/use_cases/run_csv_split_test.rb
205
+ - test/csvtool/application/use_cases/run_csv_stats_test.rb
172
206
  - test/csvtool/application/use_cases/run_extraction_test.rb
173
207
  - test/csvtool/application/use_cases/run_row_extraction_test.rb
174
208
  - test/csvtool/application/use_cases/run_row_randomization_test.rb
@@ -198,6 +232,8 @@ files:
198
232
  - test/csvtool/domain/shared/output_destination_test.rb
199
233
  - test/csvtool/infrastructure/csv/cross_csv_deduper_test.rb
200
234
  - test/csvtool/infrastructure/csv/csv_parity_comparator_test.rb
235
+ - test/csvtool/infrastructure/csv/csv_splitter_test.rb
236
+ - test/csvtool/infrastructure/csv/csv_stats_scanner_test.rb
201
237
  - test/csvtool/infrastructure/csv/header_reader_test.rb
202
238
  - test/csvtool/infrastructure/csv/row_randomizer_test.rb
203
239
  - test/csvtool/infrastructure/csv/row_streamer_test.rb
@@ -209,8 +245,11 @@ files:
209
245
  - test/csvtool/infrastructure/output/csv_randomized_row_file_writer_test.rb
210
246
  - test/csvtool/infrastructure/output/csv_row_console_writer_test.rb
211
247
  - test/csvtool/infrastructure/output/csv_row_file_writer_test.rb
248
+ - test/csvtool/infrastructure/output/csv_split_manifest_writer_test.rb
249
+ - test/csvtool/infrastructure/output/csv_stats_file_writer_test.rb
212
250
  - test/csvtool/interface/cli/errors/presenter_test.rb
213
251
  - test/csvtool/interface/cli/menu_loop_test.rb
252
+ - test/csvtool/interface/cli/prompts/chunk_size_prompt_test.rb
214
253
  - test/csvtool/interface/cli/prompts/column_selector_prompt_test.rb
215
254
  - test/csvtool/interface/cli/prompts/confirm_prompt_test.rb
216
255
  - test/csvtool/interface/cli/prompts/dedupe_key_selector_prompt_test.rb
@@ -220,23 +259,40 @@ files:
220
259
  - test/csvtool/interface/cli/prompts/seed_prompt_test.rb
221
260
  - test/csvtool/interface/cli/prompts/separator_prompt_test.rb
222
261
  - test/csvtool/interface/cli/prompts/skip_blanks_prompt_test.rb
262
+ - test/csvtool/interface/cli/prompts/split_manifest_prompt_test.rb
263
+ - test/csvtool/interface/cli/prompts/split_output_prompt_test.rb
223
264
  - test/csvtool/interface/cli/prompts/yes_no_prompt_test.rb
224
265
  - test/csvtool/interface/cli/workflows/builders/column_session_builder_test.rb
225
266
  - test/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder_test.rb
226
267
  - test/csvtool/interface/cli/workflows/builders/csv_parity_session_builder_test.rb
268
+ - test/csvtool/interface/cli/workflows/builders/csv_split_session_builder_test.rb
269
+ - test/csvtool/interface/cli/workflows/builders/csv_stats_session_builder_test.rb
227
270
  - test/csvtool/interface/cli/workflows/builders/row_extraction_session_builder_test.rb
228
271
  - test/csvtool/interface/cli/workflows/builders/row_randomization_session_builder_test.rb
229
272
  - test/csvtool/interface/cli/workflows/presenters/column_extraction_presenter_test.rb
230
273
  - test/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter_test.rb
231
274
  - test/csvtool/interface/cli/workflows/presenters/csv_parity_presenter_test.rb
275
+ - test/csvtool/interface/cli/workflows/presenters/csv_split_presenter_test.rb
276
+ - test/csvtool/interface/cli/workflows/presenters/csv_stats_presenter_test.rb
232
277
  - test/csvtool/interface/cli/workflows/presenters/row_extraction_presenter_test.rb
233
278
  - test/csvtool/interface/cli/workflows/presenters/row_randomization_presenter_test.rb
234
279
  - test/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow_test.rb
235
280
  - test/csvtool/interface/cli/workflows/run_csv_parity_workflow_test.rb
281
+ - test/csvtool/interface/cli/workflows/run_csv_split_workflow_test.rb
282
+ - test/csvtool/interface/cli/workflows/run_csv_stats_workflow_test.rb
236
283
  - test/csvtool/interface/cli/workflows/run_extraction_workflow_test.rb
237
284
  - test/csvtool/interface/cli/workflows/run_row_extraction_workflow_test.rb
238
285
  - test/csvtool/interface/cli/workflows/run_row_randomization_workflow_test.rb
239
286
  - test/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step_test.rb
287
+ - test/csvtool/interface/cli/workflows/steps/csv_split/build_session_step_test.rb
288
+ - test/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step_test.rb
289
+ - test/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step_test.rb
290
+ - test/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step_test.rb
291
+ - test/csvtool/interface/cli/workflows/steps/csv_split/execute_step_test.rb
292
+ - test/csvtool/interface/cli/workflows/steps/csv_stats/build_session_step_test.rb
293
+ - test/csvtool/interface/cli/workflows/steps/csv_stats/collect_destination_step_test.rb
294
+ - test/csvtool/interface/cli/workflows/steps/csv_stats/collect_inputs_step_test.rb
295
+ - test/csvtool/interface/cli/workflows/steps/csv_stats/execute_step_test.rb
240
296
  - test/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step_test.rb
241
297
  - test/csvtool/interface/cli/workflows/steps/parity/build_session_step_test.rb
242
298
  - test/csvtool/interface/cli/workflows/steps/parity/collect_inputs_step_test.rb
@@ -274,6 +330,7 @@ files:
274
330
  - test/fixtures/sample_people_colon.txt
275
331
  - test/fixtures/sample_people_many.csv
276
332
  - test/fixtures/sample_people_no_headers.csv
333
+ - test/fixtures/split_people_25.csv
277
334
  - test/test_helper.rb
278
335
  homepage: https://github.com/RobertAndrewHall/csvops
279
336
  licenses: