super_diff 0.1.0 → 0.2.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 (206) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +117 -89
  3. data/lib/super_diff.rb +33 -47
  4. data/lib/super_diff/active_record.rb +41 -0
  5. data/lib/super_diff/active_record/diff_formatters.rb +10 -0
  6. data/lib/super_diff/active_record/diff_formatters/active_record_relation.rb +23 -0
  7. data/lib/super_diff/active_record/differs.rb +10 -0
  8. data/lib/super_diff/active_record/differs/active_record_relation.rb +30 -0
  9. data/lib/super_diff/active_record/object_inspection.rb +14 -0
  10. data/lib/super_diff/active_record/object_inspection/inspectors.rb +16 -0
  11. data/lib/super_diff/active_record/object_inspection/inspectors/active_record_model.rb +38 -0
  12. data/lib/super_diff/active_record/object_inspection/inspectors/active_record_relation.rb +18 -0
  13. data/lib/super_diff/active_record/object_inspection/map_extension.rb +18 -0
  14. data/lib/super_diff/active_record/operation_sequences.rb +10 -0
  15. data/lib/super_diff/active_record/operation_sequences/active_record_relation.rb +16 -0
  16. data/lib/super_diff/active_record/operational_sequencers.rb +14 -0
  17. data/lib/super_diff/active_record/operational_sequencers/active_record_model.rb +19 -0
  18. data/lib/super_diff/active_record/operational_sequencers/active_record_relation.rb +24 -0
  19. data/lib/super_diff/active_support.rb +33 -0
  20. data/lib/super_diff/active_support/diff_formatters.rb +10 -0
  21. data/lib/super_diff/active_support/diff_formatters/hash_with_indifferent_access.rb +36 -0
  22. data/lib/super_diff/active_support/differs.rb +10 -0
  23. data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +36 -0
  24. data/lib/super_diff/active_support/object_inspection.rb +14 -0
  25. data/lib/super_diff/active_support/object_inspection/inspectors.rb +12 -0
  26. data/lib/super_diff/active_support/object_inspection/inspectors/hash_with_indifferent_access.rb +18 -0
  27. data/lib/super_diff/active_support/object_inspection/map_extension.rb +15 -0
  28. data/lib/super_diff/active_support/operation_sequences.rb +10 -0
  29. data/lib/super_diff/active_support/operation_sequences/hash_with_indifferent_access.rb +16 -0
  30. data/lib/super_diff/active_support/operational_sequencers.rb +10 -0
  31. data/lib/super_diff/active_support/operational_sequencers/hash_with_indifferent_access.rb +21 -0
  32. data/lib/super_diff/colorized_document_extensions.rb +17 -0
  33. data/lib/super_diff/csi.rb +45 -15
  34. data/lib/super_diff/csi/bold_sequence.rb +9 -0
  35. data/lib/super_diff/csi/color.rb +62 -0
  36. data/lib/super_diff/csi/color_sequence_block.rb +28 -0
  37. data/lib/super_diff/csi/colorized_document.rb +72 -0
  38. data/lib/super_diff/csi/document.rb +183 -0
  39. data/lib/super_diff/csi/eight_bit_color.rb +72 -26
  40. data/lib/super_diff/csi/four_bit_color.rb +63 -29
  41. data/lib/super_diff/csi/twenty_four_bit_color.rb +79 -18
  42. data/lib/super_diff/csi/uncolorized_document.rb +29 -0
  43. data/lib/super_diff/diff_formatter.rb +10 -15
  44. data/lib/super_diff/diff_formatters.rb +10 -1
  45. data/lib/super_diff/diff_formatters/base.rb +12 -17
  46. data/lib/super_diff/diff_formatters/collection.rb +81 -50
  47. data/lib/super_diff/diff_formatters/{object.rb → custom_object.rb} +12 -9
  48. data/lib/super_diff/diff_formatters/default_object.rb +48 -0
  49. data/lib/super_diff/diff_formatters/multiline_string.rb +31 -0
  50. data/lib/super_diff/differ.rb +35 -32
  51. data/lib/super_diff/differs.rb +16 -1
  52. data/lib/super_diff/differs/array.rb +2 -2
  53. data/lib/super_diff/differs/base.rb +11 -21
  54. data/lib/super_diff/differs/custom_object.rb +26 -0
  55. data/lib/super_diff/differs/default_object.rb +25 -0
  56. data/lib/super_diff/differs/empty.rb +1 -1
  57. data/lib/super_diff/differs/hash.rb +2 -2
  58. data/lib/super_diff/differs/{multi_line_string.rb → multiline_string.rb} +6 -5
  59. data/lib/super_diff/equality_matcher.rb +9 -22
  60. data/lib/super_diff/equality_matchers.rb +19 -1
  61. data/lib/super_diff/equality_matchers/array.rb +6 -4
  62. data/lib/super_diff/equality_matchers/base.rb +8 -16
  63. data/lib/super_diff/equality_matchers/default.rb +60 -0
  64. data/lib/super_diff/equality_matchers/hash.rb +6 -4
  65. data/lib/super_diff/equality_matchers/{multi_line_string.rb → multiline_string.rb} +9 -6
  66. data/lib/super_diff/equality_matchers/primitive.rb +34 -0
  67. data/lib/super_diff/equality_matchers/{single_line_string.rb → singleline_string.rb} +7 -5
  68. data/lib/super_diff/helpers.rb +17 -81
  69. data/lib/super_diff/no_differ_available_error.rb +22 -0
  70. data/lib/super_diff/{errors.rb → no_operational_sequencer_available_error.rb} +0 -0
  71. data/lib/super_diff/object_inspection.rb +24 -0
  72. data/lib/super_diff/object_inspection/inspection_tree.rb +144 -0
  73. data/lib/super_diff/object_inspection/inspector.rb +27 -0
  74. data/lib/super_diff/object_inspection/inspectors.rb +18 -0
  75. data/lib/super_diff/object_inspection/inspectors/array.rb +22 -0
  76. data/lib/super_diff/object_inspection/inspectors/custom_object.rb +27 -0
  77. data/lib/super_diff/object_inspection/inspectors/default_object.rb +47 -0
  78. data/lib/super_diff/object_inspection/inspectors/hash.rb +22 -0
  79. data/lib/super_diff/object_inspection/inspectors/primitive.rb +13 -0
  80. data/lib/super_diff/object_inspection/inspectors/string.rb +13 -0
  81. data/lib/super_diff/object_inspection/map.rb +28 -0
  82. data/lib/super_diff/object_inspection/nodes.rb +49 -0
  83. data/lib/super_diff/object_inspection/nodes/base.rb +86 -0
  84. data/lib/super_diff/object_inspection/nodes/break.rb +15 -0
  85. data/lib/super_diff/object_inspection/nodes/inspection.rb +15 -0
  86. data/lib/super_diff/object_inspection/nodes/nesting.rb +16 -0
  87. data/lib/super_diff/object_inspection/nodes/text.rb +15 -0
  88. data/lib/super_diff/object_inspection/nodes/when_empty.rb +30 -0
  89. data/lib/super_diff/object_inspection/nodes/when_multiline.rb +22 -0
  90. data/lib/super_diff/object_inspection/nodes/when_non_empty.rb +30 -0
  91. data/lib/super_diff/object_inspection/nodes/when_singleline.rb +24 -0
  92. data/lib/super_diff/operation_sequences.rb +9 -0
  93. data/lib/super_diff/operation_sequences/base.rb +1 -1
  94. data/lib/super_diff/operation_sequences/{object.rb → custom_object.rb} +4 -3
  95. data/lib/super_diff/operation_sequences/default_object.rb +25 -0
  96. data/lib/super_diff/operational_sequencer.rb +23 -18
  97. data/lib/super_diff/operational_sequencers.rb +12 -1
  98. data/lib/super_diff/operational_sequencers/array.rb +65 -62
  99. data/lib/super_diff/operational_sequencers/base.rb +18 -26
  100. data/lib/super_diff/operational_sequencers/custom_object.rb +35 -0
  101. data/lib/super_diff/operational_sequencers/{object.rb → default_object.rb} +21 -11
  102. data/lib/super_diff/operational_sequencers/hash.rb +8 -5
  103. data/lib/super_diff/operational_sequencers/{multi_line_string.rb → multiline_string.rb} +11 -6
  104. data/lib/super_diff/operations.rb +6 -0
  105. data/lib/super_diff/operations/binary_operation.rb +14 -34
  106. data/lib/super_diff/operations/unary_operation.rb +11 -2
  107. data/lib/super_diff/rails.rb +1 -0
  108. data/lib/super_diff/recursion_guard.rb +47 -0
  109. data/lib/super_diff/rspec-rails.rb +2 -0
  110. data/lib/super_diff/rspec.rb +52 -8
  111. data/lib/super_diff/rspec/augmented_matcher.rb +98 -0
  112. data/lib/super_diff/rspec/configuration.rb +31 -0
  113. data/lib/super_diff/rspec/differ.rb +60 -16
  114. data/lib/super_diff/rspec/differs.rb +13 -0
  115. data/lib/super_diff/rspec/differs/collection_containing_exactly.rb +23 -0
  116. data/lib/super_diff/rspec/differs/partial_array.rb +22 -0
  117. data/lib/super_diff/rspec/differs/partial_hash.rb +22 -0
  118. data/lib/super_diff/rspec/differs/partial_object.rb +22 -0
  119. data/lib/super_diff/rspec/matcher_text_builders.rb +24 -0
  120. data/lib/super_diff/rspec/matcher_text_builders/base.rb +155 -0
  121. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +78 -0
  122. data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +14 -0
  123. data/lib/super_diff/rspec/matcher_text_builders/match.rb +23 -0
  124. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +13 -0
  125. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +99 -0
  126. data/lib/super_diff/rspec/matcher_text_template.rb +240 -0
  127. data/lib/super_diff/rspec/monkey_patches.rb +601 -98
  128. data/lib/super_diff/rspec/object_inspection.rb +8 -0
  129. data/lib/super_diff/rspec/object_inspection/inspectors.rb +24 -0
  130. data/lib/super_diff/rspec/object_inspection/inspectors/collection_containing_exactly.rb +19 -0
  131. data/lib/super_diff/rspec/object_inspection/inspectors/partial_array.rb +22 -0
  132. data/lib/super_diff/rspec/object_inspection/inspectors/partial_hash.rb +21 -0
  133. data/lib/super_diff/rspec/object_inspection/inspectors/partial_object.rb +21 -0
  134. data/lib/super_diff/rspec/object_inspection/map_extension.rb +23 -0
  135. data/lib/super_diff/rspec/operational_sequencers.rb +22 -0
  136. data/lib/super_diff/rspec/operational_sequencers/collection_containing_exactly.rb +97 -0
  137. data/lib/super_diff/rspec/operational_sequencers/partial_array.rb +23 -0
  138. data/lib/super_diff/rspec/operational_sequencers/partial_hash.rb +32 -0
  139. data/lib/super_diff/rspec/operational_sequencers/partial_object.rb +64 -0
  140. data/lib/super_diff/version.rb +1 -1
  141. data/spec/examples.txt +328 -46
  142. data/spec/integration/rails/active_record_spec.rb +19 -0
  143. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +19 -0
  144. data/spec/integration/rspec/be_falsey_matcher_spec.rb +53 -0
  145. data/spec/integration/rspec/be_matcher_spec.rb +565 -0
  146. data/spec/integration/rspec/be_nil_matcher_spec.rb +53 -0
  147. data/spec/integration/rspec/be_predicate_matcher_spec.rb +546 -0
  148. data/spec/integration/rspec/be_truthy_matcher_spec.rb +57 -0
  149. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +368 -0
  150. data/spec/integration/rspec/eq_matcher_spec.rb +874 -0
  151. data/spec/integration/rspec/have_attributes_matcher_spec.rb +299 -0
  152. data/spec/integration/rspec/include_matcher_spec.rb +350 -0
  153. data/spec/integration/rspec/match_matcher_spec.rb +1258 -0
  154. data/spec/integration/rspec/raise_error_matcher_spec.rb +350 -0
  155. data/spec/integration/rspec/respond_to_matcher_spec.rb +994 -0
  156. data/spec/integration/rspec/unhandled_errors_spec.rb +94 -0
  157. data/spec/spec_helper.rb +19 -4
  158. data/spec/support/colorizer.rb +9 -0
  159. data/spec/support/command_runner.rb +4 -0
  160. data/spec/support/integration/helpers.rb +179 -0
  161. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +79 -41
  162. data/spec/support/models/a.rb +11 -0
  163. data/spec/support/models/active_record/person.rb +26 -0
  164. data/spec/support/models/active_record/shipping_address.rb +29 -0
  165. data/spec/support/models/customer.rb +24 -0
  166. data/spec/support/models/empty_class.rb +6 -0
  167. data/spec/support/models/item.rb +10 -0
  168. data/spec/support/models/order.rb +9 -0
  169. data/spec/support/models/person.rb +20 -0
  170. data/spec/support/models/player.rb +33 -0
  171. data/spec/support/models/shipping_address.rb +34 -0
  172. data/spec/support/ruby_versions.rb +7 -0
  173. data/spec/support/shared_examples/active_record.rb +338 -0
  174. data/spec/support/shared_examples/hash_with_indifferent_access.rb +233 -0
  175. data/spec/unit/equality_matcher_spec.rb +579 -171
  176. data/spec/unit/object_inspection_spec.rb +1092 -0
  177. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +23 -0
  178. data/spec/unit/rspec/matchers/be_falsey_spec.rb +9 -0
  179. data/spec/unit/rspec/matchers/be_nil_spec.rb +9 -0
  180. data/spec/unit/rspec/matchers/be_predicate_spec.rb +31 -0
  181. data/spec/unit/rspec/matchers/be_spec.rb +17 -0
  182. data/spec/unit/rspec/matchers/be_truthy_spec.rb +9 -0
  183. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +11 -0
  184. data/spec/unit/rspec/matchers/eq_spec.rb +9 -0
  185. data/spec/unit/rspec/matchers/have_attributes_spec.rb +11 -0
  186. data/spec/unit/rspec/matchers/include_spec.rb +21 -0
  187. data/spec/unit/rspec/matchers/match_spec.rb +9 -0
  188. data/spec/unit/rspec/matchers/raise_error_spec.rb +29 -0
  189. data/spec/unit/rspec/matchers/respond_to_spec.rb +78 -0
  190. data/super_diff.gemspec +4 -2
  191. metadata +231 -34
  192. data/lib/super_diff/csi/color_helper.rb +0 -52
  193. data/lib/super_diff/csi/eight_bit_sequence.rb +0 -27
  194. data/lib/super_diff/csi/four_bit_sequence.rb +0 -24
  195. data/lib/super_diff/csi/sequence.rb +0 -22
  196. data/lib/super_diff/csi/twenty_four_bit_sequence.rb +0 -27
  197. data/lib/super_diff/diff_formatters/multi_line_string.rb +0 -31
  198. data/lib/super_diff/differs/object.rb +0 -68
  199. data/lib/super_diff/equality_matchers/object.rb +0 -18
  200. data/lib/super_diff/value_inspection.rb +0 -11
  201. data/spec/integration/rspec_spec.rb +0 -261
  202. data/spec/support/color_helper.rb +0 -49
  203. data/spec/support/person.rb +0 -23
  204. data/spec/support/person_diff_formatter.rb +0 -15
  205. data/spec/support/person_operation_sequence.rb +0 -14
  206. data/spec/support/person_operational_sequencer.rb +0 -19
@@ -0,0 +1,8 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ autoload :Inspectors, "super_diff/rspec/object_inspection/inspectors"
5
+ autoload :MapExtension, "super_diff/rspec/object_inspection/map_extension"
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,24 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ module Inspectors
5
+ autoload(
6
+ :CollectionContainingExactly,
7
+ "super_diff/rspec/object_inspection/inspectors/collection_containing_exactly",
8
+ )
9
+ autoload(
10
+ :PartialArray,
11
+ "super_diff/rspec/object_inspection/inspectors/partial_array",
12
+ )
13
+ autoload(
14
+ :PartialHash,
15
+ "super_diff/rspec/object_inspection/inspectors/partial_hash",
16
+ )
17
+ autoload(
18
+ :PartialObject,
19
+ "super_diff/rspec/object_inspection/inspectors/partial_object",
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ module Inspectors
5
+ CollectionContainingExactly =
6
+ SuperDiff::ObjectInspection::InspectionTree.new do
7
+ add_text "#<a collection containing exactly ("
8
+
9
+ nested do |aliased_matcher|
10
+ insert_array_inspection_of(aliased_matcher.expected)
11
+ end
12
+
13
+ add_break
14
+ add_text ")>"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ module Inspectors
5
+ PartialArray = SuperDiff::ObjectInspection::InspectionTree.new do
6
+ def self.applies_to?(object)
7
+ SuperDiff::RSpec.partial_array?(object)
8
+ end
9
+
10
+ add_text "#<a collection including ("
11
+
12
+ nested do |aliased_matcher|
13
+ insert_array_inspection_of(aliased_matcher.expecteds)
14
+ end
15
+
16
+ add_break
17
+ add_text ")>"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ module Inspectors
5
+ PartialHash = SuperDiff::ObjectInspection::InspectionTree.new do
6
+ add_text "#<a hash including ("
7
+
8
+ nested do |aliased_matcher|
9
+ insert_hash_inspection_of(
10
+ aliased_matcher.expecteds.first,
11
+ initial_break: nil,
12
+ )
13
+ end
14
+
15
+ add_break
16
+ add_text ")>"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ module Inspectors
5
+ PartialObject = SuperDiff::ObjectInspection::InspectionTree.new do
6
+ add_text "#<an object having attributes ("
7
+
8
+ nested do |aliased_matcher|
9
+ insert_hash_inspection_of(
10
+ aliased_matcher.expected,
11
+ initial_break: nil,
12
+ )
13
+ end
14
+
15
+ add_break
16
+ add_text ")>"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module ObjectInspection
4
+ module MapExtension
5
+ def call(object)
6
+ if SuperDiff::RSpec.partial_hash?(object)
7
+ Inspectors::PartialHash
8
+ elsif SuperDiff::RSpec.partial_array?(object)
9
+ Inspectors::PartialArray
10
+ elsif SuperDiff::RSpec.partial_object?(object)
11
+ Inspectors::PartialObject
12
+ elsif SuperDiff::RSpec.collection_containing_exactly?(object)
13
+ Inspectors::CollectionContainingExactly
14
+ elsif object.is_a?(::RSpec::Mocks::Double)
15
+ SuperDiff::ObjectInspection::Inspectors::Primitive
16
+ else
17
+ super
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module OperationalSequencers
4
+ autoload(
5
+ :CollectionContainingExactly,
6
+ "super_diff/rspec/operational_sequencers/collection_containing_exactly",
7
+ )
8
+ autoload(
9
+ :PartialArray,
10
+ "super_diff/rspec/operational_sequencers/partial_array",
11
+ )
12
+ autoload(
13
+ :PartialHash,
14
+ "super_diff/rspec/operational_sequencers/partial_hash",
15
+ )
16
+ autoload(
17
+ :PartialObject,
18
+ "super_diff/rspec/operational_sequencers/partial_object",
19
+ )
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,97 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module OperationalSequencers
4
+ class CollectionContainingExactly < SuperDiff::OperationalSequencers::Base
5
+ def self.applies_to?(expected, actual)
6
+ SuperDiff::RSpec.collection_containing_exactly?(expected) &&
7
+ actual.is_a?(::Array)
8
+ end
9
+
10
+ def initialize(actual:, **rest)
11
+ super
12
+ populate_pairings_maximizer_in_expected_with(actual)
13
+ end
14
+
15
+ protected
16
+
17
+ def unary_operations
18
+ operations = []
19
+
20
+ (0...actual.length).each do |index|
21
+ add_noop_to(operations, index)
22
+ end
23
+
24
+ indexes_in_expected_but_not_in_actual.each do |index|
25
+ add_delete_to(operations, index)
26
+ end
27
+
28
+ operations
29
+ end
30
+
31
+ def build_operation_sequencer
32
+ OperationSequences::Array.new([])
33
+ end
34
+
35
+ private
36
+
37
+ def populate_pairings_maximizer_in_expected_with(actual)
38
+ expected.matches?(actual)
39
+ end
40
+
41
+ def add_noop_to(operations, index)
42
+ value = actual[index]
43
+ operations << ::SuperDiff::Operations::UnaryOperation.new(
44
+ name: :noop,
45
+ collection: collection,
46
+ key: index,
47
+ value: value,
48
+ index: index,
49
+ index_in_collection: collection.index(value),
50
+ )
51
+ end
52
+
53
+ def add_delete_to(operations, index)
54
+ value = expected.expected[index]
55
+ operations << ::SuperDiff::Operations::UnaryOperation.new(
56
+ name: :delete,
57
+ collection: collection,
58
+ key: index,
59
+ value: value,
60
+ index: index,
61
+ index_in_collection: collection.index(value),
62
+ )
63
+ end
64
+
65
+ def add_insert_to(operations, index)
66
+ value = actual[index]
67
+ operations << ::SuperDiff::Operations::UnaryOperation.new(
68
+ name: :insert,
69
+ collection: collection,
70
+ key: index,
71
+ value: value,
72
+ index: index,
73
+ index_in_collection: collection.index(value),
74
+ )
75
+ end
76
+
77
+ def collection
78
+ actual + values_in_expected_but_not_in_actual
79
+ end
80
+
81
+ def values_in_expected_but_not_in_actual
82
+ indexes_in_expected_but_not_in_actual.map do |index|
83
+ expected.expected[index]
84
+ end
85
+ end
86
+
87
+ def indexes_in_expected_but_not_in_actual
88
+ pairings_maximizer_best_solution.unmatched_expected_indexes
89
+ end
90
+
91
+ def pairings_maximizer_best_solution
92
+ expected.__send__(:best_solution)
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,23 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module OperationalSequencers
4
+ class PartialArray < SuperDiff::OperationalSequencers::Array
5
+ def self.applies_to?(expected, actual)
6
+ SuperDiff::RSpec.partial_array?(expected) && actual.is_a?(::Array)
7
+ end
8
+
9
+ def initialize(expected:, actual:, **rest)
10
+ super
11
+
12
+ @expected = actual_with_extra_items_in_expected_at_end
13
+ end
14
+
15
+ private
16
+
17
+ def actual_with_extra_items_in_expected_at_end
18
+ actual + (expected.expecteds - actual)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module OperationalSequencers
4
+ class PartialHash < SuperDiff::OperationalSequencers::Hash
5
+ def self.applies_to?(expected, actual)
6
+ SuperDiff::RSpec.partial_hash?(expected) && actual.is_a?(::Hash)
7
+ end
8
+
9
+ def initialize(expected:, **rest)
10
+ super
11
+
12
+ @expected = expected.expecteds.first
13
+ end
14
+
15
+ private
16
+
17
+ def should_add_noop_operation?(key)
18
+ !expected.include?(key) || (
19
+ actual.include?(key) &&
20
+ expected[key] == actual[key]
21
+ )
22
+ end
23
+
24
+ def should_add_insert_operation?(key)
25
+ expected.include?(key) &&
26
+ actual.include?(key) &&
27
+ expected[key] != actual[key]
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,64 @@
1
+ module SuperDiff
2
+ module RSpec
3
+ module OperationalSequencers
4
+ class PartialObject < SuperDiff::OperationalSequencers::DefaultObject
5
+ def self.applies_to?(expected, _actual)
6
+ SuperDiff::RSpec.partial_object?(expected)
7
+ end
8
+
9
+ protected
10
+
11
+ def build_operation_sequencer
12
+ # TODO: Test this
13
+ if actual.respond_to?(:attributes_for_super_diff)
14
+ OperationSequences::CustomObject.new([], value_class: actual.class)
15
+ else
16
+ OperationSequences::DefaultObject.new([], value_class: actual.class)
17
+ end
18
+ end
19
+
20
+ def attribute_names
21
+ # TODO: Test this
22
+ if actual.respond_to?(:attributes_for_super_diff)
23
+ actual.attributes_for_super_diff.keys | expected.expected.keys
24
+ else
25
+ expected.expected.keys
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def establish_expected_and_actual_attributes
32
+ @expected_attributes = attribute_names.reduce({}) do |hash, name|
33
+ if expected.expected.include?(name)
34
+ hash.merge(name => expected.expected[name])
35
+ else
36
+ hash
37
+ end
38
+ end
39
+
40
+ @actual_attributes = attribute_names.reduce({}) do |hash, name|
41
+ if actual.respond_to?(name)
42
+ hash.merge(name => actual.public_send(name))
43
+ else
44
+ hash
45
+ end
46
+ end
47
+ end
48
+
49
+ def should_add_noop_operation?(attribute_name)
50
+ !expected_attributes.include?(attribute_name) || (
51
+ actual_attributes.include?(attribute_name) &&
52
+ expected_attributes[attribute_name] == actual_attributes[attribute_name]
53
+ )
54
+ end
55
+
56
+ def should_add_insert_operation?(attribute_name)
57
+ expected_attributes.include?(attribute_name) &&
58
+ actual_attributes.include?(attribute_name) &&
59
+ expected_attributes[attribute_name] != actual_attributes[attribute_name]
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,3 +1,3 @@
1
1
  module SuperDiff
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.2.0".freeze
3
3
  end
data/spec/examples.txt CHANGED
@@ -1,46 +1,328 @@
1
- example_id | status | run_time |
2
- ---------------------------------------------- | ------ | --------------- |
3
- ./spec/integration/rspec_spec.rb[1:1:1] | passed | 0.27057 seconds |
4
- ./spec/integration/rspec_spec.rb[1:2:1] | passed | 0.28658 seconds |
5
- ./spec/integration/rspec_spec.rb[1:3:1] | passed | 0.26733 seconds |
6
- ./spec/integration/rspec_spec.rb[1:4:1] | passed | 0.26849 seconds |
7
- ./spec/integration/rspec_spec.rb[1:5:1] | passed | 0.38883 seconds |
8
- ./spec/integration/rspec_spec.rb[1:6:1] | passed | 0.26895 seconds |
9
- ./spec/integration/rspec_spec.rb[1:7:1] | passed | 0.27548 seconds |
10
- ./spec/unit/equality_matcher_spec.rb[1:1:1:1] | passed | 0.0002 seconds |
11
- ./spec/unit/equality_matcher_spec.rb[1:1:2:1] | passed | 0.00016 seconds |
12
- ./spec/unit/equality_matcher_spec.rb[1:1:3:1] | passed | 0.00034 seconds |
13
- ./spec/unit/equality_matcher_spec.rb[1:1:4:1] | passed | 0.00015 seconds |
14
- ./spec/unit/equality_matcher_spec.rb[1:1:5:1] | passed | 0.0001 seconds |
15
- ./spec/unit/equality_matcher_spec.rb[1:1:6:1] | passed | 0.00007 seconds |
16
- ./spec/unit/equality_matcher_spec.rb[1:1:7:1] | passed | 0.0002 seconds |
17
- ./spec/unit/equality_matcher_spec.rb[1:1:8:1] | passed | 0.00014 seconds |
18
- ./spec/unit/equality_matcher_spec.rb[1:1:9:1] | passed | 0.00119 seconds |
19
- ./spec/unit/equality_matcher_spec.rb[1:1:10:1] | passed | 0.00065 seconds |
20
- ./spec/unit/equality_matcher_spec.rb[1:1:11:1] | passed | 0.00023 seconds |
21
- ./spec/unit/equality_matcher_spec.rb[1:1:12:1] | passed | 0.00032 seconds |
22
- ./spec/unit/equality_matcher_spec.rb[1:1:13:1] | passed | 0.00037 seconds |
23
- ./spec/unit/equality_matcher_spec.rb[1:1:14:1] | passed | 0.00034 seconds |
24
- ./spec/unit/equality_matcher_spec.rb[1:1:15:1] | passed | 0.0005 seconds |
25
- ./spec/unit/equality_matcher_spec.rb[1:1:16:1] | passed | 0.00031 seconds |
26
- ./spec/unit/equality_matcher_spec.rb[1:1:17:1] | passed | 0.0004 seconds |
27
- ./spec/unit/equality_matcher_spec.rb[1:1:18:1] | passed | 0.00031 seconds |
28
- ./spec/unit/equality_matcher_spec.rb[1:1:19:1] | passed | 0.00049 seconds |
29
- ./spec/unit/equality_matcher_spec.rb[1:1:20:1] | passed | 0.00061 seconds |
30
- ./spec/unit/equality_matcher_spec.rb[1:1:21:1] | passed | 0.00064 seconds |
31
- ./spec/unit/equality_matcher_spec.rb[1:1:22:1] | passed | 0.0005 seconds |
32
- ./spec/unit/equality_matcher_spec.rb[1:1:23:1] | passed | 0.00232 seconds |
33
- ./spec/unit/equality_matcher_spec.rb[1:1:24:1] | passed | 0.00007 seconds |
34
- ./spec/unit/equality_matcher_spec.rb[1:1:25:1] | passed | 0.0005 seconds |
35
- ./spec/unit/equality_matcher_spec.rb[1:1:26:1] | passed | 0.00057 seconds |
36
- ./spec/unit/equality_matcher_spec.rb[1:1:27:1] | passed | 0.00058 seconds |
37
- ./spec/unit/equality_matcher_spec.rb[1:1:28:1] | passed | 0.00064 seconds |
38
- ./spec/unit/equality_matcher_spec.rb[1:1:29:1] | passed | 0.00053 seconds |
39
- ./spec/unit/equality_matcher_spec.rb[1:1:30:1] | passed | 0.0004 seconds |
40
- ./spec/unit/equality_matcher_spec.rb[1:1:31:1] | passed | 0.0005 seconds |
41
- ./spec/unit/equality_matcher_spec.rb[1:1:32:1] | passed | 0.00072 seconds |
42
- ./spec/unit/equality_matcher_spec.rb[1:1:33:1] | passed | 0.00115 seconds |
43
- ./spec/unit/equality_matcher_spec.rb[1:1:34:1] | passed | 0.00184 seconds |
44
- ./spec/unit/equality_matcher_spec.rb[1:1:35:1] | passed | 0.00196 seconds |
45
- ./spec/unit/equality_matcher_spec.rb[1:1:36:1] | passed | 0.00015 seconds |
46
- ./spec/unit/equality_matcher_spec.rb[1:1:37:1] | passed | 0.00014 seconds |
1
+ example_id | status | run_time |
2
+ ------------------------------------------------------------------------ | ------ | --------------- |
3
+ ./spec/integration/rails/active_record_spec.rb[1:1:1:1:1] | passed | 2.15 seconds |
4
+ ./spec/integration/rails/active_record_spec.rb[1:1:1:2:1] | passed | 2.19 seconds |
5
+ ./spec/integration/rails/active_record_spec.rb[1:1:1:3:1] | passed | 2.13 seconds |
6
+ ./spec/integration/rails/active_record_spec.rb[1:1:1:4:1] | passed | 2.16 seconds |
7
+ ./spec/integration/rails/active_record_spec.rb[1:1:1:5:1] | passed | 2.14 seconds |
8
+ ./spec/integration/rails/active_record_spec.rb[1:1:1:6:1] | passed | 2.15 seconds |
9
+ ./spec/integration/rails/active_record_spec.rb[1:2:1:1:1] | passed | 2.2 seconds |
10
+ ./spec/integration/rails/active_record_spec.rb[1:2:1:2:1] | passed | 2.11 seconds |
11
+ ./spec/integration/rails/active_record_spec.rb[1:2:1:3:1] | passed | 2.08 seconds |
12
+ ./spec/integration/rails/active_record_spec.rb[1:2:1:4:1] | passed | 2.14 seconds |
13
+ ./spec/integration/rails/active_record_spec.rb[1:2:1:5:1] | passed | 2.24 seconds |
14
+ ./spec/integration/rails/active_record_spec.rb[1:2:1:6:1] | passed | 2.14 seconds |
15
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:1:1] | passed | 2.1 seconds |
16
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:2:1] | passed | 2.12 seconds |
17
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:1:1] | passed | 2.15 seconds |
18
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:2:1] | passed | 2.1 seconds |
19
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:1:1] | passed | 2.1 seconds |
20
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:2:1] | passed | 2.13 seconds |
21
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:1:1] | passed | 2.1 seconds |
22
+ ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:2:1] | passed | 2.22 seconds |
23
+ ./spec/integration/rspec/be_falsey_matcher_spec.rb[1:1] | passed | 1.22 seconds |
24
+ ./spec/integration/rspec/be_falsey_matcher_spec.rb[1:2] | passed | 1.25 seconds |
25
+ ./spec/integration/rspec/be_matcher_spec.rb[1:1:1:1] | passed | 1.23 seconds |
26
+ ./spec/integration/rspec/be_matcher_spec.rb[1:1:1:2] | passed | 1.21 seconds |
27
+ ./spec/integration/rspec/be_matcher_spec.rb[1:1:2:1] | passed | 1.22 seconds |
28
+ ./spec/integration/rspec/be_matcher_spec.rb[1:1:2:2] | passed | 1.23 seconds |
29
+ ./spec/integration/rspec/be_matcher_spec.rb[1:2:1] | passed | 1.22 seconds |
30
+ ./spec/integration/rspec/be_matcher_spec.rb[1:2:2] | passed | 1.22 seconds |
31
+ ./spec/integration/rspec/be_matcher_spec.rb[1:3:1] | passed | 1.23 seconds |
32
+ ./spec/integration/rspec/be_matcher_spec.rb[1:3:2] | passed | 1.23 seconds |
33
+ ./spec/integration/rspec/be_matcher_spec.rb[1:4:1] | passed | 1.24 seconds |
34
+ ./spec/integration/rspec/be_matcher_spec.rb[1:4:2] | passed | 1.27 seconds |
35
+ ./spec/integration/rspec/be_matcher_spec.rb[1:5:1] | passed | 1.22 seconds |
36
+ ./spec/integration/rspec/be_matcher_spec.rb[1:5:2] | passed | 1.22 seconds |
37
+ ./spec/integration/rspec/be_matcher_spec.rb[1:6:1] | passed | 1.23 seconds |
38
+ ./spec/integration/rspec/be_matcher_spec.rb[1:6:2] | passed | 1.25 seconds |
39
+ ./spec/integration/rspec/be_matcher_spec.rb[1:7:1] | passed | 1.22 seconds |
40
+ ./spec/integration/rspec/be_matcher_spec.rb[1:7:2] | passed | 1.23 seconds |
41
+ ./spec/integration/rspec/be_matcher_spec.rb[1:8:1] | passed | 1.22 seconds |
42
+ ./spec/integration/rspec/be_matcher_spec.rb[1:8:2] | passed | 1.26 seconds |
43
+ ./spec/integration/rspec/be_matcher_spec.rb[1:9:1] | passed | 1.28 seconds |
44
+ ./spec/integration/rspec/be_matcher_spec.rb[1:9:2] | passed | 1.22 seconds |
45
+ ./spec/integration/rspec/be_nil_matcher_spec.rb[1:1] | passed | 1.22 seconds |
46
+ ./spec/integration/rspec/be_nil_matcher_spec.rb[1:2] | passed | 1.27 seconds |
47
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:1:1:1] | passed | 1.27 seconds |
48
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:1:2:1] | passed | 1.31 seconds |
49
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:1:1:1] | passed | 1.31 seconds |
50
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:1:2:1] | passed | 1.27 seconds |
51
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:1:1:1] | passed | 1.28 seconds |
52
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:1:2:1] | passed | 1.27 seconds |
53
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:2:1] | passed | 1.25 seconds |
54
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:3:1:1:1] | passed | 1.32 seconds |
55
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:3:1:2:1] | passed | 1.27 seconds |
56
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:3:2:1:1] | passed | 1.31 seconds |
57
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:1:3:2:2:1] | passed | 1.25 seconds |
58
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:1:2:2:2:1] | passed | 1.28 seconds |
59
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:1:1:1] | passed | 1.34 seconds |
60
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:1:2:1] | passed | 1.26 seconds |
61
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:1:1:1] | passed | 1.26 seconds |
62
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:1:2:1] | passed | 1.26 seconds |
63
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:1:1:1] | passed | 1.26 seconds |
64
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:1:2:1] | passed | 1.26 seconds |
65
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:2:1] | passed | 1.26 seconds |
66
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:3:1:1:1] | passed | 1.3 seconds |
67
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:3:1:2:1] | passed | 1.28 seconds |
68
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:3:2:1:1] | passed | 1.31 seconds |
69
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:1:3:2:2:1] | passed | 1.25 seconds |
70
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:2:2:2:2:1] | passed | 1.29 seconds |
71
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:1:1:1] | passed | 1.25 seconds |
72
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:1:2:1] | passed | 1.25 seconds |
73
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:1:1:1] | passed | 1.26 seconds |
74
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:1:2:1] | passed | 1.25 seconds |
75
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:1:1:1] | passed | 1.26 seconds |
76
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:1:2:1] | passed | 1.26 seconds |
77
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:2:1] | passed | 1.26 seconds |
78
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:3:1:1:1] | passed | 1.3 seconds |
79
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:3:1:2:1] | passed | 1.35 seconds |
80
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:3:2:1:1] | passed | 1.26 seconds |
81
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:1:3:2:2:1] | passed | 1.26 seconds |
82
+ ./spec/integration/rspec/be_predicate_matcher_spec.rb[1:3:2:2:2:1] | passed | 1.25 seconds |
83
+ ./spec/integration/rspec/be_truthy_matcher_spec.rb[1:1] | passed | 1.32 seconds |
84
+ ./spec/integration/rspec/be_truthy_matcher_spec.rb[1:2] | passed | 1.33 seconds |
85
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:1:1] | passed | 1.31 seconds |
86
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:1:2] | passed | 1.25 seconds |
87
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:2:1:1] | passed | 1.27 seconds |
88
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:2:1:2] | passed | 1.24 seconds |
89
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:2:2:1] | passed | 1.34 seconds |
90
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:2:2:2] | passed | 1.26 seconds |
91
+ ./spec/integration/rspec/contain_exactly_matcher_spec.rb[1:2:3:1] | passed | 1.29 seconds |
92
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:1:1] | passed | 1.3 seconds |
93
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:1:2] | passed | 1.27 seconds |
94
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:2:1] | passed | 1.22 seconds |
95
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:2:2] | passed | 1.25 seconds |
96
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:3:1] | passed | 1.23 seconds |
97
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:3:2] | passed | 1.27 seconds |
98
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:4:1] | passed | 1.33 seconds |
99
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:5:1] | passed | 1.28 seconds |
100
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:6:1] | passed | 1.27 seconds |
101
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:6:2] | passed | 1.23 seconds |
102
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:7:1] | passed | 1.29 seconds |
103
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:7:2] | passed | 1.24 seconds |
104
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:8:1] | passed | 1.27 seconds |
105
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:8:2] | passed | 1.27 seconds |
106
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:9:1] | passed | 1.25 seconds |
107
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:9:2] | passed | 1.22 seconds |
108
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:10:1] | passed | 1.27 seconds |
109
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:10:2] | passed | 1.26 seconds |
110
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:11:1] | passed | 1.28 seconds |
111
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:12:1] | passed | 1.28 seconds |
112
+ ./spec/integration/rspec/eq_matcher_spec.rb[1:13:1] | passed | 1.29 seconds |
113
+ ./spec/integration/rspec/have_attributes_matcher_spec.rb[1:1:1:1] | passed | 1.28 seconds |
114
+ ./spec/integration/rspec/have_attributes_matcher_spec.rb[1:1:1:2] | passed | 1.27 seconds |
115
+ ./spec/integration/rspec/have_attributes_matcher_spec.rb[1:1:2:1] | passed | 1.28 seconds |
116
+ ./spec/integration/rspec/have_attributes_matcher_spec.rb[1:2:1:1] | passed | 1.28 seconds |
117
+ ./spec/integration/rspec/have_attributes_matcher_spec.rb[1:2:1:2] | passed | 1.25 seconds |
118
+ ./spec/integration/rspec/have_attributes_matcher_spec.rb[1:2:2:1] | passed | 1.28 seconds |
119
+ ./spec/integration/rspec/include_matcher_spec.rb[1:1:1:1] | passed | 1.28 seconds |
120
+ ./spec/integration/rspec/include_matcher_spec.rb[1:1:1:2] | passed | 1.31 seconds |
121
+ ./spec/integration/rspec/include_matcher_spec.rb[1:1:2:1] | passed | 1.28 seconds |
122
+ ./spec/integration/rspec/include_matcher_spec.rb[1:1:2:2] | passed | 1.24 seconds |
123
+ ./spec/integration/rspec/include_matcher_spec.rb[1:2:1:1] | passed | 1.27 seconds |
124
+ ./spec/integration/rspec/include_matcher_spec.rb[1:2:1:2] | passed | 1.3 seconds |
125
+ ./spec/integration/rspec/include_matcher_spec.rb[1:2:2:1] | passed | 1.28 seconds |
126
+ ./spec/integration/rspec/include_matcher_spec.rb[1:2:2:2] | passed | 1.22 seconds |
127
+ ./spec/integration/rspec/match_matcher_spec.rb[1:1:1:1] | passed | 1.28 seconds |
128
+ ./spec/integration/rspec/match_matcher_spec.rb[1:1:1:2] | passed | 1.22 seconds |
129
+ ./spec/integration/rspec/match_matcher_spec.rb[1:1:2:1] | passed | 1.31 seconds |
130
+ ./spec/integration/rspec/match_matcher_spec.rb[1:1:2:2] | passed | 1.25 seconds |
131
+ ./spec/integration/rspec/match_matcher_spec.rb[1:2:1:1] | passed | 1.28 seconds |
132
+ ./spec/integration/rspec/match_matcher_spec.rb[1:2:1:2] | passed | 1.24 seconds |
133
+ ./spec/integration/rspec/match_matcher_spec.rb[1:2:2:1] | passed | 1.3 seconds |
134
+ ./spec/integration/rspec/match_matcher_spec.rb[1:3:1:1] | passed | 1.28 seconds |
135
+ ./spec/integration/rspec/match_matcher_spec.rb[1:3:1:2] | passed | 1.25 seconds |
136
+ ./spec/integration/rspec/match_matcher_spec.rb[1:3:2:1] | passed | 1.28 seconds |
137
+ ./spec/integration/rspec/match_matcher_spec.rb[1:3:2:2] | passed | 1.23 seconds |
138
+ ./spec/integration/rspec/match_matcher_spec.rb[1:4:1:1] | passed | 1.28 seconds |
139
+ ./spec/integration/rspec/match_matcher_spec.rb[1:4:1:2] | passed | 1.23 seconds |
140
+ ./spec/integration/rspec/match_matcher_spec.rb[1:4:2:1] | passed | 1.28 seconds |
141
+ ./spec/integration/rspec/match_matcher_spec.rb[1:5:1:1] | passed | 1.29 seconds |
142
+ ./spec/integration/rspec/match_matcher_spec.rb[1:5:1:2] | passed | 1.25 seconds |
143
+ ./spec/integration/rspec/match_matcher_spec.rb[1:5:2:1] | passed | 1.27 seconds |
144
+ ./spec/integration/rspec/match_matcher_spec.rb[1:5:2:2] | passed | 1.23 seconds |
145
+ ./spec/integration/rspec/match_matcher_spec.rb[1:6:1] | passed | 1.29 seconds |
146
+ ./spec/integration/rspec/match_matcher_spec.rb[1:6:2] | passed | 1.23 seconds |
147
+ ./spec/integration/rspec/match_matcher_spec.rb[1:7:1:1] | passed | 1.26 seconds |
148
+ ./spec/integration/rspec/match_matcher_spec.rb[1:7:1:2] | passed | 1.31 seconds |
149
+ ./spec/integration/rspec/match_matcher_spec.rb[1:7:2:1] | passed | 1.27 seconds |
150
+ ./spec/integration/rspec/match_matcher_spec.rb[1:7:2:2] | passed | 1.26 seconds |
151
+ ./spec/integration/rspec/match_matcher_spec.rb[1:8:1:1] | passed | 1.39 seconds |
152
+ ./spec/integration/rspec/match_matcher_spec.rb[1:8:1:2] | passed | 1.25 seconds |
153
+ ./spec/integration/rspec/match_matcher_spec.rb[1:8:2:1] | passed | 1.28 seconds |
154
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:1:1] | passed | 1.45 seconds |
155
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:1:2] | passed | 1.31 seconds |
156
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:2:1:1] | passed | 1.29 seconds |
157
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:2:1:2] | passed | 1.31 seconds |
158
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:2:2:1:1] | passed | 1.22 seconds |
159
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:2:2:1:2] | passed | 1.21 seconds |
160
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:2:2:2:1] | passed | 1.27 seconds |
161
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:2:2:2:2] | passed | 1.22 seconds |
162
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:3:1] | passed | 1.3 seconds |
163
+ ./spec/integration/rspec/raise_error_matcher_spec.rb[1:3:2] | passed | 1.3 seconds |
164
+ ./spec/integration/rspec/random_exception_spec.rb[1:1:1] | passed | 1.27 seconds |
165
+ ./spec/integration/rspec/random_exception_spec.rb[1:2:1] | passed | 1.25 seconds |
166
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:1:1:1] | passed | 1.27 seconds |
167
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:1:1:2] | passed | 1.28 seconds |
168
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:1:2:1] | passed | 1.24 seconds |
169
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:1:2:2] | passed | 1.23 seconds |
170
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:2:1:1] | passed | 1.28 seconds |
171
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:2:1:2] | passed | 1.26 seconds |
172
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:2:2:1] | passed | 1.22 seconds |
173
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:2:2:2] | passed | 1.23 seconds |
174
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:3:1:1] | passed | 1.26 seconds |
175
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:3:1:2] | passed | 1.28 seconds |
176
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:3:2:1] | passed | 1.23 seconds |
177
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:3:2:2] | passed | 1.23 seconds |
178
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:4:1:1] | passed | 1.3 seconds |
179
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:4:1:2] | passed | 1.27 seconds |
180
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:4:2:1] | passed | 1.26 seconds |
181
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:4:2:2] | passed | 1.23 seconds |
182
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:5:1:1] | passed | 1.22 seconds |
183
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:5:1:2] | passed | 1.23 seconds |
184
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:5:2:1] | passed | 1.22 seconds |
185
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:5:2:2] | passed | 1.22 seconds |
186
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:6:1] | passed | 1.22 seconds |
187
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:6:2] | passed | 1.26 seconds |
188
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:7:1] | passed | 1.23 seconds |
189
+ ./spec/integration/rspec/respond_to_matcher_spec.rb[1:7:2] | passed | 1.24 seconds |
190
+ ./spec/unit/equality_matcher_spec.rb[1:1:1:1] | passed | 0.00022 seconds |
191
+ ./spec/unit/equality_matcher_spec.rb[1:1:2:1] | passed | 0.00025 seconds |
192
+ ./spec/unit/equality_matcher_spec.rb[1:1:3:1] | passed | 0.01272 seconds |
193
+ ./spec/unit/equality_matcher_spec.rb[1:1:4:1] | passed | 0.0003 seconds |
194
+ ./spec/unit/equality_matcher_spec.rb[1:1:5:1] | passed | 0.00052 seconds |
195
+ ./spec/unit/equality_matcher_spec.rb[1:1:6:1] | passed | 0.00022 seconds |
196
+ ./spec/unit/equality_matcher_spec.rb[1:1:7:1] | passed | 0.01308 seconds |
197
+ ./spec/unit/equality_matcher_spec.rb[1:1:8:1] | passed | 0.00051 seconds |
198
+ ./spec/unit/equality_matcher_spec.rb[1:1:9:1] | passed | 0.00035 seconds |
199
+ ./spec/unit/equality_matcher_spec.rb[1:1:10:1] | passed | 0.00034 seconds |
200
+ ./spec/unit/equality_matcher_spec.rb[1:1:11:1] | passed | 0.01028 seconds |
201
+ ./spec/unit/equality_matcher_spec.rb[1:1:12:1] | passed | 0.00074 seconds |
202
+ ./spec/unit/equality_matcher_spec.rb[1:1:13:1] | passed | 0.00191 seconds |
203
+ ./spec/unit/equality_matcher_spec.rb[1:1:14:1] | passed | 0.00036 seconds |
204
+ ./spec/unit/equality_matcher_spec.rb[1:1:15:1] | passed | 0.016 seconds |
205
+ ./spec/unit/equality_matcher_spec.rb[1:1:16:1] | passed | 0.00104 seconds |
206
+ ./spec/unit/equality_matcher_spec.rb[1:1:17:1] | passed | 0.00115 seconds |
207
+ ./spec/unit/equality_matcher_spec.rb[1:1:18:1] | passed | 0.00374 seconds |
208
+ ./spec/unit/equality_matcher_spec.rb[1:1:19:1] | passed | 0.00782 seconds |
209
+ ./spec/unit/equality_matcher_spec.rb[1:1:20:1] | passed | 0.00187 seconds |
210
+ ./spec/unit/equality_matcher_spec.rb[1:1:21:1] | passed | 0.00124 seconds |
211
+ ./spec/unit/equality_matcher_spec.rb[1:1:22:1] | passed | 0.00125 seconds |
212
+ ./spec/unit/equality_matcher_spec.rb[1:1:23:1] | passed | 0.00189 seconds |
213
+ ./spec/unit/equality_matcher_spec.rb[1:1:24:1] | passed | 0.00244 seconds |
214
+ ./spec/unit/equality_matcher_spec.rb[1:1:25:1] | passed | 0.0015 seconds |
215
+ ./spec/unit/equality_matcher_spec.rb[1:1:26:1] | passed | 0.0177 seconds |
216
+ ./spec/unit/equality_matcher_spec.rb[1:1:27:1] | passed | 0.00032 seconds |
217
+ ./spec/unit/equality_matcher_spec.rb[1:1:28:1] | passed | 0.02128 seconds |
218
+ ./spec/unit/equality_matcher_spec.rb[1:1:29:1] | passed | 0.00164 seconds |
219
+ ./spec/unit/equality_matcher_spec.rb[1:1:30:1] | passed | 0.00096 seconds |
220
+ ./spec/unit/equality_matcher_spec.rb[1:1:31:1] | passed | 0.00094 seconds |
221
+ ./spec/unit/equality_matcher_spec.rb[1:1:32:1] | passed | 0.00309 seconds |
222
+ ./spec/unit/equality_matcher_spec.rb[1:1:33:1] | passed | 0.00092 seconds |
223
+ ./spec/unit/equality_matcher_spec.rb[1:1:34:1] | passed | 0.00107 seconds |
224
+ ./spec/unit/equality_matcher_spec.rb[1:1:35:1] | passed | 0.00828 seconds |
225
+ ./spec/unit/equality_matcher_spec.rb[1:1:36:1] | passed | 0.00271 seconds |
226
+ ./spec/unit/equality_matcher_spec.rb[1:1:37:1] | passed | 0.00308 seconds |
227
+ ./spec/unit/equality_matcher_spec.rb[1:1:38:1] | passed | 0.00407 seconds |
228
+ ./spec/unit/equality_matcher_spec.rb[1:1:39:1] | passed | 0.00072 seconds |
229
+ ./spec/unit/equality_matcher_spec.rb[1:1:40:1] | passed | 0.01364 seconds |
230
+ ./spec/unit/equality_matcher_spec.rb[1:1:41:1] | passed | 0.00676 seconds |
231
+ ./spec/unit/equality_matcher_spec.rb[1:1:42:1] | passed | 0.00096 seconds |
232
+ ./spec/unit/equality_matcher_spec.rb[1:1:43:1] | passed | 0.00066 seconds |
233
+ ./spec/unit/equality_matcher_spec.rb[1:1:44:1] | passed | 0.00338 seconds |
234
+ ./spec/unit/equality_matcher_spec.rb[1:1:45:1] | passed | 0.01327 seconds |
235
+ ./spec/unit/equality_matcher_spec.rb[1:1:46:1] | passed | 0.00207 seconds |
236
+ ./spec/unit/equality_matcher_spec.rb[1:1:47:1] | passed | 0.00117 seconds |
237
+ ./spec/unit/object_inspection_spec.rb[1:1:1:1:1] | passed | 0.00032 seconds |
238
+ ./spec/unit/object_inspection_spec.rb[1:1:1:2:1] | passed | 0.00092 seconds |
239
+ ./spec/unit/object_inspection_spec.rb[1:1:2:1:1] | passed | 0.00033 seconds |
240
+ ./spec/unit/object_inspection_spec.rb[1:1:2:2:1] | passed | 0.00021 seconds |
241
+ ./spec/unit/object_inspection_spec.rb[1:1:3:1:1] | passed | 0.00021 seconds |
242
+ ./spec/unit/object_inspection_spec.rb[1:1:3:2:1] | passed | 0.00022 seconds |
243
+ ./spec/unit/object_inspection_spec.rb[1:1:4:1:1] | passed | 0.00034 seconds |
244
+ ./spec/unit/object_inspection_spec.rb[1:1:4:2:1] | passed | 0.00071 seconds |
245
+ ./spec/unit/object_inspection_spec.rb[1:1:5:1:1] | passed | 0.00023 seconds |
246
+ ./spec/unit/object_inspection_spec.rb[1:1:5:2:1] | passed | 0.00021 seconds |
247
+ ./spec/unit/object_inspection_spec.rb[1:1:6:1:1] | passed | 0.00049 seconds |
248
+ ./spec/unit/object_inspection_spec.rb[1:1:6:2:1] | passed | 0.00029 seconds |
249
+ ./spec/unit/object_inspection_spec.rb[1:1:7:1] | passed | 0.0002 seconds |
250
+ ./spec/unit/object_inspection_spec.rb[1:1:8:1:1] | passed | 0.00022 seconds |
251
+ ./spec/unit/object_inspection_spec.rb[1:1:8:2:1] | passed | 0.00443 seconds |
252
+ ./spec/unit/object_inspection_spec.rb[1:1:9:1:1:1] | passed | 0.00034 seconds |
253
+ ./spec/unit/object_inspection_spec.rb[1:1:9:1:2:1] | passed | 0.00032 seconds |
254
+ ./spec/unit/object_inspection_spec.rb[1:1:9:2:1:1] | passed | 0.00044 seconds |
255
+ ./spec/unit/object_inspection_spec.rb[1:1:9:2:2:1] | passed | 0.0004 seconds |
256
+ ./spec/unit/object_inspection_spec.rb[1:1:9:3:1:1] | passed | 0.00025 seconds |
257
+ ./spec/unit/object_inspection_spec.rb[1:1:9:3:2:1] | passed | 0.0003 seconds |
258
+ ./spec/unit/object_inspection_spec.rb[1:1:10:1:1:1:1] | passed | 0.00033 seconds |
259
+ ./spec/unit/object_inspection_spec.rb[1:1:10:1:1:2:1] | passed | 0.00056 seconds |
260
+ ./spec/unit/object_inspection_spec.rb[1:1:10:1:2:1:1] | passed | 0.00034 seconds |
261
+ ./spec/unit/object_inspection_spec.rb[1:1:10:1:2:2:1] | passed | 0.0003 seconds |
262
+ ./spec/unit/object_inspection_spec.rb[1:1:10:2:1:1] | passed | 0.00308 seconds |
263
+ ./spec/unit/object_inspection_spec.rb[1:1:10:2:2:1] | passed | 0.0018 seconds |
264
+ ./spec/unit/object_inspection_spec.rb[1:1:10:3:1:1] | passed | 0.00101 seconds |
265
+ ./spec/unit/object_inspection_spec.rb[1:1:10:3:2:1] | passed | 0.00025 seconds |
266
+ ./spec/unit/object_inspection_spec.rb[1:1:11:1:1] | passed | 0.0003 seconds |
267
+ ./spec/unit/object_inspection_spec.rb[1:1:11:2:1] | passed | 0.00025 seconds |
268
+ ./spec/unit/object_inspection_spec.rb[1:1:12:1:1:1] | passed | 0.00027 seconds |
269
+ ./spec/unit/object_inspection_spec.rb[1:1:12:1:2:1] | passed | 0.00028 seconds |
270
+ ./spec/unit/object_inspection_spec.rb[1:1:12:2:1:1] | passed | 0.00038 seconds |
271
+ ./spec/unit/object_inspection_spec.rb[1:1:12:2:2:1] | passed | 0.00042 seconds |
272
+ ./spec/unit/object_inspection_spec.rb[1:1:13:1:1:1] | passed | 0.00049 seconds |
273
+ ./spec/unit/object_inspection_spec.rb[1:1:13:1:2:1] | passed | 0.00148 seconds |
274
+ ./spec/unit/object_inspection_spec.rb[1:1:13:2:1:1] | passed | 0.00458 seconds |
275
+ ./spec/unit/object_inspection_spec.rb[1:1:13:2:2:1] | passed | 0.0055 seconds |
276
+ ./spec/unit/object_inspection_spec.rb[1:1:13:3:1:1] | passed | 0.00048 seconds |
277
+ ./spec/unit/object_inspection_spec.rb[1:1:13:3:2:1] | passed | 0.00124 seconds |
278
+ ./spec/unit/object_inspection_spec.rb[1:1:14:1:1] | passed | 0.00103 seconds |
279
+ ./spec/unit/object_inspection_spec.rb[1:1:14:2:1] | passed | 0.00038 seconds |
280
+ ./spec/unit/object_inspection_spec.rb[1:1:15:1:1] | passed | 0.0005 seconds |
281
+ ./spec/unit/object_inspection_spec.rb[1:1:15:2:1] | passed | 0.00103 seconds |
282
+ ./spec/unit/object_inspection_spec.rb[1:1:16:1:1] | passed | 0.00073 seconds |
283
+ ./spec/unit/object_inspection_spec.rb[1:1:16:2:1] | passed | 0.00039 seconds |
284
+ ./spec/unit/object_inspection_spec.rb[1:1:17:1:1] | passed | 0.00043 seconds |
285
+ ./spec/unit/object_inspection_spec.rb[1:1:17:2:1] | passed | 0.00213 seconds |
286
+ ./spec/unit/object_inspection_spec.rb[1:1:18:1:1:1] | passed | 0.00052 seconds |
287
+ ./spec/unit/object_inspection_spec.rb[1:1:18:1:2:1] | passed | 0.00032 seconds |
288
+ ./spec/unit/object_inspection_spec.rb[1:1:19:1:1] | passed | 0.00053 seconds |
289
+ ./spec/unit/object_inspection_spec.rb[1:1:19:2:1] | passed | 0.00047 seconds |
290
+ ./spec/unit/object_inspection_spec.rb[1:1:20:1:1] | passed | 0.01403 seconds |
291
+ ./spec/unit/object_inspection_spec.rb[1:1:20:2:1] | passed | 0.00184 seconds |
292
+ ./spec/unit/object_inspection_spec.rb[1:1:21:1:1] | passed | 0.00049 seconds |
293
+ ./spec/unit/object_inspection_spec.rb[1:1:21:2:1] | passed | 0.00097 seconds |
294
+ ./spec/unit/object_inspection_spec.rb[1:1:22:1:1] | passed | 0.01117 seconds |
295
+ ./spec/unit/object_inspection_spec.rb[1:1:22:2:1] | passed | 0.0055 seconds |
296
+ ./spec/unit/object_inspection_spec.rb[1:2:1:1] | passed | 0.00907 seconds |
297
+ ./spec/unit/object_inspection_spec.rb[1:2:2:1] | passed | 0.00067 seconds |
298
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:1:1] | passed | 0.00043 seconds |
299
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:2:1] | passed | 0.00042 seconds |
300
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:3:1] | passed | 0.00047 seconds |
301
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:4:1] | passed | 0.00056 seconds |
302
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:5:1] | passed | 0.0007 seconds |
303
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:6:1] | passed | 0.00045 seconds |
304
+ ./spec/unit/rspec/matchers/be_compared_to_spec.rb[1:1:7:1] | passed | 0.00044 seconds |
305
+ ./spec/unit/rspec/matchers/be_falsey_spec.rb[1:1:1] | passed | 0.00054 seconds |
306
+ ./spec/unit/rspec/matchers/be_nil_spec.rb[1:1:1] | passed | 0.00054 seconds |
307
+ ./spec/unit/rspec/matchers/be_predicate_spec.rb[1:1:1] | passed | 0.00047 seconds |
308
+ ./spec/unit/rspec/matchers/be_predicate_spec.rb[2:1:1] | passed | 0.00291 seconds |
309
+ ./spec/unit/rspec/matchers/be_predicate_spec.rb[3:1:1] | passed | 0.00039 seconds |
310
+ ./spec/unit/rspec/matchers/be_spec.rb[1:1:1:1] | passed | 0.00041 seconds |
311
+ ./spec/unit/rspec/matchers/be_spec.rb[1:1:2:1] | passed | 0.00036 seconds |
312
+ ./spec/unit/rspec/matchers/be_truthy_spec.rb[1:1:1] | passed | 0.00031 seconds |
313
+ ./spec/unit/rspec/matchers/contain_exactly_spec.rb[1:1:1] | passed | 0.00452 seconds |
314
+ ./spec/unit/rspec/matchers/eq_spec.rb[1:1:1] | passed | 0.01077 seconds |
315
+ ./spec/unit/rspec/matchers/have_attributes_spec.rb[1:1:1] | passed | 0.00118 seconds |
316
+ ./spec/unit/rspec/matchers/include_spec.rb[1:1:1:1] | passed | 0.00044 seconds |
317
+ ./spec/unit/rspec/matchers/include_spec.rb[1:1:2:1] | passed | 0.00061 seconds |
318
+ ./spec/unit/rspec/matchers/match_spec.rb[1:1:1] | passed | 0.00781 seconds |
319
+ ./spec/unit/rspec/matchers/raise_error_spec.rb[1:1:1:1] | passed | 0.00219 seconds |
320
+ ./spec/unit/rspec/matchers/raise_error_spec.rb[1:1:2:1] | passed | 0.00024 seconds |
321
+ ./spec/unit/rspec/matchers/raise_error_spec.rb[1:1:3:1] | passed | 0.00029 seconds |
322
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:1:1] | passed | 0.00052 seconds |
323
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:2:1] | passed | 0.00058 seconds |
324
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:3:1] | passed | 0.00118 seconds |
325
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:4:1] | passed | 0.00058 seconds |
326
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:5:1] | passed | 0.00085 seconds |
327
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:6:1] | passed | 0.00162 seconds |
328
+ ./spec/unit/rspec/matchers/respond_to_spec.rb[1:1:7:1] | passed | 0.00101 seconds |