percept 0.0.1 → 3.0.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.
Files changed (110) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ruby.yml +34 -0
  3. data/.gitignore +3 -1
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +110 -0
  6. data/.rubocop_todo.yml +383 -0
  7. data/.tool-versions +2 -0
  8. data/Gemfile +12 -1
  9. data/Gemfile.lock +138 -0
  10. data/Guardfile +10 -0
  11. data/README.md +20 -0
  12. data/Rakefile +18 -0
  13. data/bin/percept +8 -1
  14. data/lib/ext/rmagick_pixel.rb +19 -0
  15. data/lib/percept/checkbox_collection.rb +19 -0
  16. data/lib/percept/checkbox_detector.rb +19 -0
  17. data/lib/percept/checkbox_field.rb +24 -0
  18. data/lib/percept/color_utils.rb +17 -0
  19. data/lib/percept/config.rb +35 -0
  20. data/lib/percept/field.rb +74 -0
  21. data/lib/percept/field_collection.rb +29 -0
  22. data/lib/percept/field_detector.rb +56 -0
  23. data/lib/percept/image.rb +60 -0
  24. data/lib/percept/line.rb +116 -4
  25. data/lib/percept/line_collection.rb +88 -0
  26. data/lib/percept/line_detector.rb +102 -0
  27. data/lib/percept/line_filter.rb +95 -0
  28. data/lib/percept/pixel.rb +28 -0
  29. data/lib/percept/pixel_utils.rb +73 -0
  30. data/lib/percept/rmagick_image.rb +49 -0
  31. data/lib/percept/runner.rb +15 -96
  32. data/lib/percept/utils.rb +15 -0
  33. data/lib/percept/version.rb +3 -1
  34. data/lib/percept.rb +40 -1
  35. data/percept.gemspec +6 -7
  36. data/spec/fixtures/black_lines.png +0 -0
  37. data/spec/fixtures/bottom_line.png +0 -0
  38. data/spec/fixtures/bumpy_no_line.png +0 -0
  39. data/spec/fixtures/corners.png +0 -0
  40. data/spec/fixtures/divots.png +0 -0
  41. data/spec/fixtures/field_next_to_text.png +0 -0
  42. data/spec/fixtures/gray_cell_bottom.png +0 -0
  43. data/spec/fixtures/gray_image_section.png +0 -0
  44. data/spec/fixtures/grey_lines.png +0 -0
  45. data/spec/fixtures/high_line.png +0 -0
  46. data/spec/fixtures/large_checkbox.png +0 -0
  47. data/spec/fixtures/large_checkboxes.png +0 -0
  48. data/spec/fixtures/light_gray.png +0 -0
  49. data/spec/fixtures/low_line.png +0 -0
  50. data/spec/fixtures/low_lines.png +0 -0
  51. data/spec/fixtures/mid_lines.png +0 -0
  52. data/spec/fixtures/more_corners.png +0 -0
  53. data/spec/fixtures/more_text_on_line.png +0 -0
  54. data/spec/fixtures/nub_both_sides.png +0 -0
  55. data/spec/fixtures/nub_bottom_left.png +0 -0
  56. data/spec/fixtures/nub_top_right.png +0 -0
  57. data/spec/fixtures/nubs.png +0 -0
  58. data/spec/fixtures/slanted_left.png +0 -0
  59. data/spec/fixtures/slanted_right.png +0 -0
  60. data/spec/fixtures/small_checkbox.png +0 -0
  61. data/spec/fixtures/text_no_line.png +0 -0
  62. data/spec/fixtures/text_no_line_2.png +0 -0
  63. data/spec/fixtures/text_on_line.png +0 -0
  64. data/spec/fixtures/thick_line.png +0 -0
  65. data/spec/fixtures/thin_field.png +0 -0
  66. data/spec/percept/checkbox_field/height_spec.rb +15 -0
  67. data/spec/percept/checkbox_field/width_spec.rb +15 -0
  68. data/spec/percept/field/contains_spec.rb +50 -0
  69. data/spec/percept/field_detector/detect_field_spec.rb +90 -0
  70. data/spec/percept/field_detector/detect_fields_spec.rb +42 -0
  71. data/spec/percept/fields_collection/shovel_spec.rb +53 -0
  72. data/spec/percept/line/approxequals_spec.rb +60 -0
  73. data/spec/percept/line/initialize_spec.rb +29 -0
  74. data/spec/percept/line/length_spec.rb +22 -0
  75. data/spec/percept/line/merge_bang_spec.rb +58 -0
  76. data/spec/percept/line/pixels_spec.rb +15 -0
  77. data/spec/percept/line/split_spec.rb +28 -0
  78. data/spec/percept/line/to_s_spec.rb +13 -0
  79. data/spec/percept/line_collection/merge_line_spec.rb +50 -0
  80. data/spec/percept/line_collection/remove_unwanted_lines_bang_spec.rb +17 -0
  81. data/spec/percept/line_collection/split_spec.rb +20 -0
  82. data/spec/percept/line_collection/to_s_spec.rb +11 -0
  83. data/spec/percept/line_detector/detect_lines_spec.rb +93 -0
  84. data/spec/percept/line_detector/scaled_color_spec.rb +14 -0
  85. data/spec/percept/line_filter/filter_line_predicate_spec.rb +29 -0
  86. data/spec/percept/line_filter/left_bottom_corner_predicate_spec.rb +49 -0
  87. data/spec/percept/line_filter/left_top_corner_predicate_spec.rb +50 -0
  88. data/spec/percept/line_filter/right_bottom_corner_predicate_spec.rb +49 -0
  89. data/spec/percept/line_filter/right_top_corner_predicate_spec.rb +49 -0
  90. data/spec/percept/line_filter/table_bottom_predicate_spec.rb +48 -0
  91. data/spec/percept/line_filter/table_top_predicate_spec.rb +48 -0
  92. data/spec/percept/pixel/blackish_predicate_spec.rb +36 -0
  93. data/spec/percept/rmagick_image/interface_spec.rb +11 -0
  94. data/spec/percept/runner/color_fields_spec.rb +28 -0
  95. data/spec/percept/runner/color_lines_spec.rb +27 -0
  96. data/spec/shared_examples/image_interface_shared_examples.rb +162 -0
  97. data/spec/spec_helper.rb +52 -0
  98. data/tddium.yml +12 -0
  99. data/test_images/funky_image.png +0 -0
  100. data/test_images/interaction_test.png +0 -0
  101. data/test_images/jagged_lines.png +0 -0
  102. data/test_images/permission.png +0 -0
  103. data/test_images/rough.png +0 -0
  104. data/test_images/slanted.png +0 -0
  105. data/test_images/time_sheet.png +0 -0
  106. data/test_images/travel_reimbursement.png +0 -0
  107. data/test_images/warehouse_form.png +0 -0
  108. metadata +171 -34
  109. data/new_permission.png +0 -0
  110. data/permission.png +0 -0
@@ -0,0 +1,162 @@
1
+ shared_examples_for 'image interface' do
2
+
3
+ let(:image_path) { File.join(fixture_path, 'low_line.png') }
4
+
5
+ describe '#get_pixels' do
6
+ it 'returns an array of pixels' do
7
+ pixels = image.get_pixels(0, 0, 40, 20)
8
+ expect(pixels.length).to eq 800
9
+ pixels.each do |pixel|
10
+ expect(pixel).not_to be_nil
11
+ end
12
+ end
13
+ end
14
+
15
+ describe '#magick_rows' do
16
+ it 'returns a nested arrays of rows of pixels' do
17
+ expect(image.magick_rows.length).to eq 20
18
+ image.magick_rows.each do |row|
19
+ expect(row.length).to eq 40
20
+ row.each do |pixel|
21
+ expect(pixel).not_to be_nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ describe '#pixels' do
28
+ it 'returns an array of pixel objects' do
29
+ pixels = image.pixels
30
+ expect(pixels.length).to eq 800
31
+ pixel = pixels.first
32
+ expect(pixel.scaled_red).to eq 255
33
+ expect(pixel.scaled_green).to eq 255
34
+ expect(pixel.scaled_blue).to eq 255
35
+ end
36
+ end
37
+
38
+ describe '#checkbox_fields' do
39
+ let(:large_image) { File.join(fixture_path, 'large_checkbox.png') }
40
+ let(:small_image) { File.join(fixture_path, 'small_checkbox.png') }
41
+
42
+ it 'returns an array of checkbox fields' do
43
+ image = image_class.new(large_image)
44
+ expect(image.checkbox_fields.length).to eq 1
45
+ field = image.checkbox_fields.first
46
+ expect(field.height).to eq 17
47
+ expect(field.width).to eq 17
48
+ end
49
+ end
50
+
51
+ describe '#fields' do
52
+ let(:image_path) { File.join(fixture_path, 'mid_lines.png') }
53
+
54
+ before(:each) do
55
+ Percept.configure do |config|
56
+ config.min_field_height = 5
57
+ config.max_field_height = 10
58
+ config.line_length = 30
59
+ end
60
+ end
61
+
62
+ it 'returns the appropriate number of fields for an image' do
63
+ image = image_class.new(File.join(fixture_path, 'mid_lines.png'))
64
+ expect(image.fields.size).to eq 2
65
+ image = image_class.new(File.join(fixture_path, 'low_lines.png'))
66
+ expect(image.fields.size).to eq 1
67
+ image = image_class.new(File.join(fixture_path, 'low_line.png'))
68
+ expect(image.fields.size).to eq 1
69
+ image = image_class.new(File.join(fixture_path, 'high_line.png'))
70
+ expect(image.fields.size).to eq 1
71
+ Percept.config.min_field_height = 8
72
+ image = image_class.new(File.join(fixture_path, 'high_line.png'))
73
+ expect(image.fields.size).to eq 0
74
+ image = image_class.new(File.join(fixture_path, 'slanted_left.png'))
75
+ expect(image.fields.size).to eq 1
76
+ image = image_class.new(File.join(fixture_path, 'slanted_right.png'))
77
+ expect(image.fields.size).to eq 1
78
+ end
79
+ end
80
+
81
+ describe '#lines' do
82
+ let(:black_image) { File.join(fixture_path, 'black_lines.png') }
83
+ let(:grey_image) { File.join(fixture_path, 'grey_lines.png') }
84
+ let(:image) { image_class.new(black_image) }
85
+
86
+ before(:each) do
87
+ Percept.config.color_tolerance = 150
88
+ Percept.config.line_length = 30
89
+ end
90
+
91
+ it 'returns the appropriate number of lines for the image' do
92
+ image = image_class.new(File.join(fixture_path, 'low_line.png'))
93
+ expect(image.lines.size).to eq 1
94
+ line = image.lines.first
95
+ expect(line.length).to eq 32
96
+ expect(line.pixels.size).to eq 32
97
+ end
98
+
99
+ context 'when the color tolerance is higher' do
100
+ it 'allows more grey in the line' do
101
+ Percept.config.color_tolerance = 250
102
+ expect(image.lines.size).to eq 1
103
+ line = image.lines.first
104
+ expect(line.pixels.size).to eq 81
105
+ end
106
+ end
107
+
108
+ context 'when the line length is shorter' do
109
+ it 'finds more lines' do
110
+ Percept.config.line_length = 10
111
+ expect(image.lines.size).to eq 3
112
+ end
113
+ end
114
+
115
+ context 'when the image is greyish' do
116
+ it 'still finds lines' do
117
+ image.file_path = grey_image
118
+ expect(image.lines.size).to eq 1
119
+ end
120
+ end
121
+ end
122
+
123
+ describe '#column_count' do
124
+ it 'returns the number of pixels across the image' do
125
+ expect(image.column_count).to eq 40
126
+ end
127
+ end
128
+
129
+ describe '#row_count' do
130
+ it 'returns the number of pixels down the image' do
131
+ expect(image.row_count).to eq 20
132
+ end
133
+ end
134
+
135
+ describe '#write' do
136
+ let(:image_path) { File.join(fixture_path, 'black_lines.png') }
137
+ let(:runner) { Percept::Runner.new }
138
+ let(:image) { image_class.new(image_path) }
139
+
140
+ before(:each) do
141
+ Percept.config.line_length = 30
142
+ Percept.config.min_field_height = 10
143
+ end
144
+
145
+ def red?(pixel)
146
+ pixel.red > 0 && pixel.blue == 0 && pixel.green == 0
147
+ end
148
+
149
+ it 'writes out pixels to a specified output image' do
150
+ black_pixels = image.pixels.select(&:blackish?)
151
+ runner.color_fields(image_path)
152
+ line = image.lines.first
153
+ field = Percept::FieldDetector.new.detect_field(line, image)
154
+ output_image = image_class.new(output_path)
155
+ output_black_pixels = output_image.pixels.select(&:blackish?)
156
+ expect(output_black_pixels.length).to eq black_pixels.length
157
+ output_red_pixels = output_image.pixels.select { |p| red?(p) }
158
+ expect(output_red_pixels.length).to eq field.pixels.length
159
+ end
160
+ end
161
+
162
+ end
@@ -0,0 +1,52 @@
1
+ require 'colorize'
2
+ require 'fileutils'
3
+
4
+ # require 'simplecov'
5
+ # SimpleCov.start
6
+
7
+ require_relative '../lib/percept'
8
+
9
+ def spec_root
10
+ File.dirname(__FILE__)
11
+ end
12
+
13
+ def fixture_path
14
+ File.expand_path(File.join(spec_root, 'fixtures'))
15
+ end
16
+
17
+ def shared_path
18
+ File.expand_path(File.join(spec_root, 'shared_examples'))
19
+ end
20
+
21
+ def image_class
22
+ Percept.config.image_class
23
+ end
24
+
25
+ def capture_stdout
26
+ out = StringIO.new
27
+ $stdout = out
28
+ yield
29
+ out
30
+ ensure
31
+ $stdout = STDOUT
32
+ end
33
+
34
+ def output_path
35
+ 'tmp/test_output.png'
36
+ end
37
+
38
+ Dir[File.join(shared_path, '**', '*.rb')].each { |file| require file }
39
+
40
+ RSpec.configure do |config|
41
+ config.filter_run focus: true
42
+ config.run_all_when_everything_filtered = true
43
+
44
+ config.before(:each) do
45
+ Percept.config.output_path = output_path
46
+ end
47
+
48
+ config.after(:each) do
49
+ File.delete(output_path) if File.exist?(output_path)
50
+ Percept.reset
51
+ end
52
+ end
data/tddium.yml ADDED
@@ -0,0 +1,12 @@
1
+ :tddium:
2
+ :ruby_version: ruby-2.2.5
3
+ :bundler_version: 1.9.4
4
+
5
+ :test_pattern:
6
+ - spec/**_spec.rb
7
+ :coverage:
8
+ :ratchet: 96
9
+
10
+ :tests:
11
+ - bundle exec rubocop -D
12
+ - gem build percept.gemspec
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,43 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: percept
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Fletcher
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2014-02-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: bundler
13
+ name: rmagick
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ~>
16
+ - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :development
18
+ version: 6.1.1
19
+ type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - ~>
23
+ - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '1.3'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
25
+ version: 6.1.1
41
26
  description: Detect lines in an image
42
27
  email:
43
28
  - lobatifricha@gmail.com
@@ -46,42 +31,194 @@ executables:
46
31
  extensions: []
47
32
  extra_rdoc_files: []
48
33
  files:
49
- - .gitignore
34
+ - ".github/workflows/ruby.yml"
35
+ - ".gitignore"
36
+ - ".rspec"
37
+ - ".rubocop.yml"
38
+ - ".rubocop_todo.yml"
39
+ - ".tool-versions"
50
40
  - Gemfile
41
+ - Gemfile.lock
42
+ - Guardfile
51
43
  - LICENSE.txt
52
44
  - README.md
53
45
  - Rakefile
54
46
  - bin/percept
47
+ - lib/ext/rmagick_pixel.rb
55
48
  - lib/percept.rb
49
+ - lib/percept/checkbox_collection.rb
50
+ - lib/percept/checkbox_detector.rb
51
+ - lib/percept/checkbox_field.rb
52
+ - lib/percept/color_utils.rb
53
+ - lib/percept/config.rb
54
+ - lib/percept/field.rb
55
+ - lib/percept/field_collection.rb
56
+ - lib/percept/field_detector.rb
57
+ - lib/percept/image.rb
56
58
  - lib/percept/line.rb
59
+ - lib/percept/line_collection.rb
60
+ - lib/percept/line_detector.rb
61
+ - lib/percept/line_filter.rb
62
+ - lib/percept/pixel.rb
63
+ - lib/percept/pixel_utils.rb
64
+ - lib/percept/rmagick_image.rb
57
65
  - lib/percept/runner.rb
66
+ - lib/percept/utils.rb
58
67
  - lib/percept/version.rb
59
- - new_permission.png
60
68
  - percept.gemspec
61
- - permission.png
69
+ - spec/fixtures/black_lines.png
70
+ - spec/fixtures/bottom_line.png
71
+ - spec/fixtures/bumpy_no_line.png
72
+ - spec/fixtures/corners.png
73
+ - spec/fixtures/divots.png
74
+ - spec/fixtures/field_next_to_text.png
75
+ - spec/fixtures/gray_cell_bottom.png
76
+ - spec/fixtures/gray_image_section.png
77
+ - spec/fixtures/grey_lines.png
78
+ - spec/fixtures/high_line.png
79
+ - spec/fixtures/large_checkbox.png
80
+ - spec/fixtures/large_checkboxes.png
81
+ - spec/fixtures/light_gray.png
82
+ - spec/fixtures/low_line.png
83
+ - spec/fixtures/low_lines.png
84
+ - spec/fixtures/mid_lines.png
85
+ - spec/fixtures/more_corners.png
86
+ - spec/fixtures/more_text_on_line.png
87
+ - spec/fixtures/nub_both_sides.png
88
+ - spec/fixtures/nub_bottom_left.png
89
+ - spec/fixtures/nub_top_right.png
90
+ - spec/fixtures/nubs.png
91
+ - spec/fixtures/slanted_left.png
92
+ - spec/fixtures/slanted_right.png
93
+ - spec/fixtures/small_checkbox.png
94
+ - spec/fixtures/text_no_line.png
95
+ - spec/fixtures/text_no_line_2.png
96
+ - spec/fixtures/text_on_line.png
97
+ - spec/fixtures/thick_line.png
98
+ - spec/fixtures/thin_field.png
99
+ - spec/percept/checkbox_field/height_spec.rb
100
+ - spec/percept/checkbox_field/width_spec.rb
101
+ - spec/percept/field/contains_spec.rb
102
+ - spec/percept/field_detector/detect_field_spec.rb
103
+ - spec/percept/field_detector/detect_fields_spec.rb
104
+ - spec/percept/fields_collection/shovel_spec.rb
105
+ - spec/percept/line/approxequals_spec.rb
106
+ - spec/percept/line/initialize_spec.rb
107
+ - spec/percept/line/length_spec.rb
108
+ - spec/percept/line/merge_bang_spec.rb
109
+ - spec/percept/line/pixels_spec.rb
110
+ - spec/percept/line/split_spec.rb
111
+ - spec/percept/line/to_s_spec.rb
112
+ - spec/percept/line_collection/merge_line_spec.rb
113
+ - spec/percept/line_collection/remove_unwanted_lines_bang_spec.rb
114
+ - spec/percept/line_collection/split_spec.rb
115
+ - spec/percept/line_collection/to_s_spec.rb
116
+ - spec/percept/line_detector/detect_lines_spec.rb
117
+ - spec/percept/line_detector/scaled_color_spec.rb
118
+ - spec/percept/line_filter/filter_line_predicate_spec.rb
119
+ - spec/percept/line_filter/left_bottom_corner_predicate_spec.rb
120
+ - spec/percept/line_filter/left_top_corner_predicate_spec.rb
121
+ - spec/percept/line_filter/right_bottom_corner_predicate_spec.rb
122
+ - spec/percept/line_filter/right_top_corner_predicate_spec.rb
123
+ - spec/percept/line_filter/table_bottom_predicate_spec.rb
124
+ - spec/percept/line_filter/table_top_predicate_spec.rb
125
+ - spec/percept/pixel/blackish_predicate_spec.rb
126
+ - spec/percept/rmagick_image/interface_spec.rb
127
+ - spec/percept/runner/color_fields_spec.rb
128
+ - spec/percept/runner/color_lines_spec.rb
129
+ - spec/shared_examples/image_interface_shared_examples.rb
130
+ - spec/spec_helper.rb
131
+ - tddium.yml
132
+ - test_images/funky_image.png
133
+ - test_images/interaction_test.png
134
+ - test_images/jagged_lines.png
135
+ - test_images/permission.png
136
+ - test_images/rough.png
137
+ - test_images/slanted.png
138
+ - test_images/time_sheet.png
139
+ - test_images/travel_reimbursement.png
140
+ - test_images/warehouse_form.png
62
141
  homepage: ''
63
142
  licenses:
64
143
  - MIT
65
144
  metadata: {}
66
- post_install_message:
67
145
  rdoc_options: []
68
146
  require_paths:
69
147
  - lib
70
148
  required_ruby_version: !ruby/object:Gem::Requirement
71
149
  requirements:
72
- - - '>='
150
+ - - ">="
73
151
  - !ruby/object:Gem::Version
74
152
  version: '0'
75
153
  required_rubygems_version: !ruby/object:Gem::Requirement
76
154
  requirements:
77
- - - '>='
155
+ - - ">="
78
156
  - !ruby/object:Gem::Version
79
157
  version: '0'
80
158
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.1.11
83
- signing_key:
159
+ rubygems_version: 3.6.7
84
160
  specification_version: 4
85
161
  summary: Blackish lines for now...
86
- test_files: []
87
- has_rdoc:
162
+ test_files:
163
+ - spec/fixtures/black_lines.png
164
+ - spec/fixtures/bottom_line.png
165
+ - spec/fixtures/bumpy_no_line.png
166
+ - spec/fixtures/corners.png
167
+ - spec/fixtures/divots.png
168
+ - spec/fixtures/field_next_to_text.png
169
+ - spec/fixtures/gray_cell_bottom.png
170
+ - spec/fixtures/gray_image_section.png
171
+ - spec/fixtures/grey_lines.png
172
+ - spec/fixtures/high_line.png
173
+ - spec/fixtures/large_checkbox.png
174
+ - spec/fixtures/large_checkboxes.png
175
+ - spec/fixtures/light_gray.png
176
+ - spec/fixtures/low_line.png
177
+ - spec/fixtures/low_lines.png
178
+ - spec/fixtures/mid_lines.png
179
+ - spec/fixtures/more_corners.png
180
+ - spec/fixtures/more_text_on_line.png
181
+ - spec/fixtures/nub_both_sides.png
182
+ - spec/fixtures/nub_bottom_left.png
183
+ - spec/fixtures/nub_top_right.png
184
+ - spec/fixtures/nubs.png
185
+ - spec/fixtures/slanted_left.png
186
+ - spec/fixtures/slanted_right.png
187
+ - spec/fixtures/small_checkbox.png
188
+ - spec/fixtures/text_no_line.png
189
+ - spec/fixtures/text_no_line_2.png
190
+ - spec/fixtures/text_on_line.png
191
+ - spec/fixtures/thick_line.png
192
+ - spec/fixtures/thin_field.png
193
+ - spec/percept/checkbox_field/height_spec.rb
194
+ - spec/percept/checkbox_field/width_spec.rb
195
+ - spec/percept/field/contains_spec.rb
196
+ - spec/percept/field_detector/detect_field_spec.rb
197
+ - spec/percept/field_detector/detect_fields_spec.rb
198
+ - spec/percept/fields_collection/shovel_spec.rb
199
+ - spec/percept/line/approxequals_spec.rb
200
+ - spec/percept/line/initialize_spec.rb
201
+ - spec/percept/line/length_spec.rb
202
+ - spec/percept/line/merge_bang_spec.rb
203
+ - spec/percept/line/pixels_spec.rb
204
+ - spec/percept/line/split_spec.rb
205
+ - spec/percept/line/to_s_spec.rb
206
+ - spec/percept/line_collection/merge_line_spec.rb
207
+ - spec/percept/line_collection/remove_unwanted_lines_bang_spec.rb
208
+ - spec/percept/line_collection/split_spec.rb
209
+ - spec/percept/line_collection/to_s_spec.rb
210
+ - spec/percept/line_detector/detect_lines_spec.rb
211
+ - spec/percept/line_detector/scaled_color_spec.rb
212
+ - spec/percept/line_filter/filter_line_predicate_spec.rb
213
+ - spec/percept/line_filter/left_bottom_corner_predicate_spec.rb
214
+ - spec/percept/line_filter/left_top_corner_predicate_spec.rb
215
+ - spec/percept/line_filter/right_bottom_corner_predicate_spec.rb
216
+ - spec/percept/line_filter/right_top_corner_predicate_spec.rb
217
+ - spec/percept/line_filter/table_bottom_predicate_spec.rb
218
+ - spec/percept/line_filter/table_top_predicate_spec.rb
219
+ - spec/percept/pixel/blackish_predicate_spec.rb
220
+ - spec/percept/rmagick_image/interface_spec.rb
221
+ - spec/percept/runner/color_fields_spec.rb
222
+ - spec/percept/runner/color_lines_spec.rb
223
+ - spec/shared_examples/image_interface_shared_examples.rb
224
+ - spec/spec_helper.rb
data/new_permission.png DELETED
Binary file
data/permission.png DELETED
Binary file