splitwise / super_diff

A more helpful way to view differences between complex data structures in RSpec.
https://splitwise.github.io/super_diff/
MIT License
977 stars 50 forks source link

NameError: uninitialized constant HashWithIndifferentAccess #104

Closed TravisSpangle closed 3 years ago

TravisSpangle commented 3 years ago

Hello,

Thank you for your work on this problem. I think it's going to be very beneficial.

Im getting this error in the title. I downloaded the code, set it up , ran the specs and verified that they also cannot get activesupport working. I can post the output below.

If the projects (super_diff) specs are also failing on HashWithIndifferentAccess then it seems like it's an environmental issue. Do you have any troubleshooting tips?

Failures:

  1) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to eq(expected)

              Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
                 to eq { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
              -   "line_1" => "123 Main St.",
              +   "line_1" => "456 Ponderosa Ct.",
              -   "city" => "Hill Valley",
              +   "city" => "Oakland",
                  "state" => "CA",
              -   "zip" => "90382"
              +   "zip" => "91234"
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007fc855168e18>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.57912 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:55:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:7:in `block (6 levels) in <top (required)>'

  2) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to eq(expected)

              Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
                 to eq { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
              -   "line_1" => "123 Main St.",
              +   "line_1" => "456 Ponderosa Ct.",
              -   "city" => "Hill Valley",
              +   "city" => "Oakland",
                  "state" => "CA",
              -   "zip" => "90382"
              +   "zip" => "91234"
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007fd43c96d198>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00003 seconds (files took 0.5976 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:112:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:64:in `block (6 levels) in <top (required)>'

  3) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to eq(expected)

              Expected { shipments: [{ estimated_delivery: { from: "2019-05-06", to: "2019-05-09" } }] }
                 to eq #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
                  "shipments" => [
                    {
                      "estimated_delivery" => {
                        "from" => "2019-05-06",
              -         "to" => "2019-05-06"
              +         "to" => "2019-05-09"
                      }
                    }
                  ]
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007fef8d8291f8>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.66102 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:299:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:241:in `block (6 levels) in <top (required)>'

  4) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to eq(expected)

              Expected { "shipments" => [{ "estimated_delivery" => { "from" => "2019-05-06", "to" => "2019-05-09" } }] }
                 to eq #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
                  "shipments" => [
                    {
                      "estimated_delivery" => {
                        "from" => "2019-05-06",
              -         "to" => "2019-05-06"
              +         "to" => "2019-05-09"
                      }
                    }
                  ]
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007fb43fa09308>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.55159 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:366:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:308:in `block (6 levels) in <top (required)>'

  5) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to eq(expected)

              Expected { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }
                 to eq #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
              -   "line_1" => "456 Ponderosa Ct.",
              +   "line_1" => "123 Main St.",
              -   "city" => "Oakland",
              +   "city" => "Hill Valley",
                  "state" => "CA",
              -   "zip" => "91234"
              +   "zip" => "90382"
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007fd9599312c0>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.5723 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:173:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:125:in `block (6 levels) in <top (required)>'

  6) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to eq(expected)

              Expected { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }
                 to eq #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
              -   "line_1" => "456 Ponderosa Ct.",
              +   "line_1" => "123 Main St.",
              -   "city" => "Oakland",
              +   "city" => "Hill Valley",
                  "state" => "CA",
              -   "zip" => "91234"
              +   "zip" => "90382"
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007f9269115208>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.55141 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:230:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:182:in `block (6 levels) in <top (required)>'

  7) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to match(expected)

              Expected { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }
              to match #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
              -   "line_1" => "456 Ponderosa Ct.",
              +   "line_1" => "123 Main St.",
              -   "city" => "Oakland",
              +   "city" => "Hill Valley",
                  "state" => "CA",
              -   "zip" => "91234"
              +   "zip" => "90382"
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007feb36955078>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.59762 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:604:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:556:in `block (6 levels) in <top (required)>'

  8) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to match(expected)

              Expected { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }
              to match #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
              -   "line_1" => "456 Ponderosa Ct.",
              +   "line_1" => "123 Main St.",
              -   "city" => "Oakland",
              +   "city" => "Hill Valley",
                  "state" => "CA",
              -   "zip" => "91234"
              +   "zip" => "90382"
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007ff4338fd0c0>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.59106 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:547:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:499:in `block (6 levels) in <top (required)>'

  9) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
     Failure/Error:
       expect(program).
         to produce_output_when_run(expected_output).
         in_color(color_enabled)

       Expected test to produce output, but it did not.

       Expected output to contain:

       ---START----------------------------------------------------------------
       Failures:

         1) test passes
            Failure/Error: expect(actual).to match(expected)

              Expected { shipments: [{ estimated_delivery: { from: "2019-05-06", to: "2019-05-09" } }] }
              to match #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

              Diff:

              ┌ (Key) ──────────────────────────┐
              │ ‹-› in expected, not in actual  │
              │ ‹+› in actual, not in expected  │
              │ ‹ › in both expected and actual │
              └─────────────────────────────────┘

                #<HashWithIndifferentAccess {
                  "shipments" => [
                    {
                      "estimated_delivery" => {
                        "from" => "2019-05-06",
              -         "to" => "2019-05-06"
              +         "to" => "2019-05-09"
                      }
                    }
                  ]
                }>
       ---END------------------------------------------------------------------

       Actual output:

       ---START----------------------------------------------------------------
       An error occurred while loading ./tmp/integration_spec.rb.
       Failure/Error: test_plan.boot_active_record

       NoMethodError:
         private method `boot_active_record' called for #<TestPlan:0x00007fbb9f965458>
       # ./tmp/integration_spec.rb:8:in `<top (required)>'
       No examples found.

       Finished in 0.00002 seconds (files took 0.5705 seconds to load)
       0 examples, 0 failures, 1 error occurred outside of examples
       ---END------------------------------------------------------------------
     Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
     # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:673:in `block (7 levels) in <top (required)>'
     # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
     # ./spec/support/integration/helpers.rb:6:in `each'
     # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
     # ./spec/support/shared_examples/hash_with_indifferent_access.rb:615:in `block (6 levels) in <top (required)>'

  10) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected { "shipments" => [{ "estimated_delivery" => { "from" => "2019-05-06", "to" => "2019-05-09" } }] }
               to match #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
                   "shipments" => [
                     {
                       "estimated_delivery" => {
                         "from" => "2019-05-06",
               -         "to" => "2019-05-06"
               +         "to" => "2019-05-09"
                       }
                     }
                   ]
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fac3a91d000>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.55644 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:740:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:682:in `block (6 levels) in <top (required)>'

  11) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
               to match { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "123 Main St.",
               +   "line_1" => "456 Ponderosa Ct.",
               -   "city" => "Hill Valley",
               +   "city" => "Oakland",
                   "state" => "CA",
               -   "zip" => "90382"
               +   "zip" => "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fb73890d1d8>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.55319 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:486:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:438:in `block (6 levels) in <top (required)>'

  12) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
               to match { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "123 Main St.",
               +   "line_1" => "456 Ponderosa Ct.",
               -   "city" => "Hill Valley",
               +   "city" => "Oakland",
                   "state" => "CA",
               -   "zip" => "90382"
               +   "zip" => "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fde1799d110>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.56519 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:429:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:381:in `block (6 levels) in <top (required)>'

  13) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }
               to match #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "456 Ponderosa Ct.",
               +   "line_1" => "123 Main St.",
               -   "city" => "Oakland",
               +   "city" => "Hill Valley",
                   "state" => "CA",
               -   "zip" => "91234"
               +   "zip" => "90382"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fcb8712cfa0>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.58203 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:604:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:556:in `block (6 levels) in <top (required)>'

  14) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }
               to match #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "456 Ponderosa Ct.",
               +   "line_1" => "123 Main St.",
               -   "city" => "Oakland",
               +   "city" => "Hill Valley",
                   "state" => "CA",
               -   "zip" => "91234"
               +   "zip" => "90382"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fbd35949298>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.5678 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:547:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:499:in `block (6 levels) in <top (required)>'

  15) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected { shipments: [{ estimated_delivery: { from: "2019-05-06", to: "2019-05-09" } }] }
               to match #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
                   "shipments" => [
                     {
                       "estimated_delivery" => {
                         "from" => "2019-05-06",
               -         "to" => "2019-05-06"
               +         "to" => "2019-05-09"
                       }
                     }
                   ]
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007faf7111d0a0>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.54812 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:673:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:615:in `block (6 levels) in <top (required)>'

  16) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected { "shipments" => [{ "estimated_delivery" => { "from" => "2019-05-06", "to" => "2019-05-09" } }] }
               to match #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
                   "shipments" => [
                     {
                       "estimated_delivery" => {
                         "from" => "2019-05-06",
               -         "to" => "2019-05-06"
               +         "to" => "2019-05-09"
                       }
                     }
                   ]
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f9d4199d280>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.54859 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:740:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:682:in `block (6 levels) in <top (required)>'

  17) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
               to match { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "123 Main St.",
               +   "line_1" => "456 Ponderosa Ct.",
               -   "city" => "Hill Valley",
               +   "city" => "Oakland",
                   "state" => "CA",
               -   "zip" => "90382"
               +   "zip" => "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007faf568dd008>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.54681 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:429:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:381:in `block (6 levels) in <top (required)>'

  18) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
               to match { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "123 Main St.",
               +   "line_1" => "456 Ponderosa Ct.",
               -   "city" => "Hill Valley",
               +   "city" => "Oakland",
                   "state" => "CA",
               -   "zip" => "90382"
               +   "zip" => "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007faace9d0e38>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.56182 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:486:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:438:in `block (6 levels) in <top (required)>'

  19) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
                  to eq { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "123 Main St.",
               +   "line_1" => "456 Ponderosa Ct.",
               -   "city" => "Hill Valley",
               +   "city" => "Oakland",
                   "state" => "CA",
               -   "zip" => "90382"
               +   "zip" => "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f7ee11cd1f0>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.54516 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:55:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:7:in `block (6 levels) in <top (required)>'

  20) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>
                  to eq { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "123 Main St.",
               +   "line_1" => "456 Ponderosa Ct.",
               -   "city" => "Hill Valley",
               +   "city" => "Oakland",
                   "state" => "CA",
               -   "zip" => "90382"
               +   "zip" => "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f8d5d190b80>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.54324 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:112:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:64:in `block (6 levels) in <top (required)>'

  21) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { "line_1" => "123 Main St.", "city" => "Hill Valley", "state" => "CA", "zip" => "90382" }
                  to eq #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "456 Ponderosa Ct.",
               +   "line_1" => "123 Main St.",
               -   "city" => "Oakland",
               +   "city" => "Hill Valley",
                   "state" => "CA",
               -   "zip" => "91234"
               +   "zip" => "90382"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007feb05921290>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.56343 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:230:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:182:in `block (6 levels) in <top (required)>'

  22) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { line_1: "123 Main St.", city: "Hill Valley", state: "CA", zip: "90382" }
                  to eq #<HashWithIndifferentAccess { "line_1" => "456 Ponderosa Ct.", "city" => "Oakland", "state" => "CA", "zip" => "91234" }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
               -   "line_1" => "456 Ponderosa Ct.",
               +   "line_1" => "123 Main St.",
               -   "city" => "Oakland",
               +   "city" => "Hill Valley",
                   "state" => "CA",
               -   "zip" => "91234"
               +   "zip" => "90382"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f93d31a14b8>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.55341 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:173:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:125:in `block (6 levels) in <top (required)>'

  23) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { shipments: [{ estimated_delivery: { from: "2019-05-06", to: "2019-05-09" } }] }
                  to eq #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
                   "shipments" => [
                     {
                       "estimated_delivery" => {
                         "from" => "2019-05-06",
               -         "to" => "2019-05-06"
               +         "to" => "2019-05-09"
                       }
                     }
                   ]
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f8e1f8255f0>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.56153 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:299:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:241:in `block (6 levels) in <top (required)>'

  24) Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { "shipments" => [{ "estimated_delivery" => { "from" => "2019-05-06", "to" => "2019-05-09" } }] }
                  to eq #<HashWithIndifferentAccess { "shipments" => [#<HashWithIndifferentAccess { "estimated_delivery" => #<HashWithIndifferentAccess { "from" => "2019-05-06", "to" => "2019-05-06" }> }>] }>

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<HashWithIndifferentAccess {
                   "shipments" => [
                     {
                       "estimated_delivery" => {
                         "from" => "2019-05-06",
               -         "to" => "2019-05-06"
               +         "to" => "2019-05-09"
                       }
                     }
                   ]
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fc62293d510>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.53889 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with HashWithIndifferentAccess" called from ./spec/integration/rails/hash_with_indifferent_access_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:366:in `block (7 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/hash_with_indifferent_access.rb:308:in `block (6 levels) in <top (required)>'

  25) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing instances of two different ActiveRecord models produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot">
                  to eq #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f9e6e8f1178>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.53068 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:94:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:61:in `block (4 levels) in <top (required)>'

  26) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing two data structures that contain two instances of the same ActiveRecord model produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234"> }
                  to eq { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 {
                   name: "Marty McFly",
                   shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
                     id: nil,
               -     city: "Hill Valley",
               +     city: "Oakland",
               -     line_1: "123 Main St.",
               +     line_1: "456 Ponderosa Ct.",
                     line_2: "",
                     state: "CA",
               -     zip: "90382"
               +     zip: "91234"
                   }>
                 }
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fa819174f80>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.6048 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:198:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:142:in `block (4 levels) in <top (required)>'

  27) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing an ActiveRecord object with nothing produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected nil
                  to eq #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fa3a0954c28>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.53758 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:133:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:103:in `block (4 levels) in <top (required)>'

  28) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing two data structures that contain instances of two different ActiveRecord models produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot"> }
                  to eq { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 {
                   name: "Marty McFly",
               -   shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
               -     id: nil,
               -     city: "Hill Valley",
               -     line_1: "123 Main St.",
               -     line_2: "",
               -     state: "CA",
               -     zip: "90382"
               -   }>
               +   shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person {
               +     id: nil,
               +     age: 31,
               +     name: "Elliot"
               +   }>
                 }
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fdad510d468>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00005 seconds (files took 0.56457 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:263:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:207:in `block (4 levels) in <top (required)>'

  29) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing an ActiveRecord::Relation object with an array produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">, #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 2, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">]>
                  to eq [#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">]

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<ActiveRecord::Relation [
                   #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
                     id: 1,
                     city: "Hill Valley",
                     line_1: "123 Main St.",
                     line_2: "",
                     state: "CA",
                     zip: "90382"
                   }>,
               +   #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
               +     id: 2,
               +     city: "Oakland",
               +     line_1: "456 Ponderosa Ct.",
               +     line_2: "",
               +     state: "CA",
               +     zip: "91234"
               +   }>
                 ]>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007ff1749dd128>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.55835 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:331:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:272:in `block (4 levels) in <top (required)>'

  30) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing two instances of the same ActiveRecord model produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">
                  to eq #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
                   id: nil,
               -   city: "Hill Valley",
               +   city: "Oakland",
               -   line_1: "123 Main St.",
               +   line_1: "456 Ponderosa Ct.",
                   line_2: "",
                   state: "CA",
               -   zip: "90382"
               +   zip: "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fb257138f88>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.66201 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:52:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:5:in `block (4 levels) in <top (required)>'

  31) Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value includes an ActiveRecord object produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled).
          removing_object_ids

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected [#<SuperDiff::Test::Models::ActiveRecord::Query @results=#<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::Person id: 1, name: "Murphy", age: 20>]>>]
               to match [#<an object having attributes (results: [#<an object having attributes (name: "John", age: 19)>])>]

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 [
                   #<SuperDiff::Test::Models::ActiveRecord::Query {
                     @results=#<ActiveRecord::Relation [
                       #<SuperDiff::Test::Models::ActiveRecord::Person {
                         id: 1,
               -         age: 19
               +         age: 20,
               -         name: "John"
               +         name: "Murphy"
                       }>
                     ]>
                   }>
                 ]
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00004 seconds (files took 1.2 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:5
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:401:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:342:in `block (4 levels) in <top (required)>'

  32) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #match matcher when the expected value includes an ActiveRecord object produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled).
          removing_object_ids

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to match(expected)

               Expected [#<SuperDiff::Test::Models::ActiveRecord::Query @results=#<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::Person id: 1, name: "Murphy", age: 20>]>>]
               to match [#<an object having attributes (results: [#<an object having attributes (name: "John", age: 19)>])>]

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 [
                   #<SuperDiff::Test::Models::ActiveRecord::Query {
                     @results=#<ActiveRecord::Relation [
                       #<SuperDiff::Test::Models::ActiveRecord::Person {
                         id: 1,
               -         age: 19
               +         age: 20,
               -         name: "John"
               +         name: "Murphy"
                       }>
                     ]>
                   }>
                 ]
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.84934 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:401:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:342:in `block (4 levels) in <top (required)>'

  33) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing instances of two different ActiveRecord models produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot">
                  to eq #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fcf6b95d318>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.70604 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:94:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:61:in `block (4 levels) in <top (required)>'

  34) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing two data structures that contain instances of two different ActiveRecord models produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot"> }
                  to eq { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 {
                   name: "Marty McFly",
               -   shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
               -     id: nil,
               -     city: "Hill Valley",
               -     line_1: "123 Main St.",
               -     line_2: "",
               -     state: "CA",
               -     zip: "90382"
               -   }>
               +   shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person {
               +     id: nil,
               +     age: 31,
               +     name: "Elliot"
               +   }>
                 }
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fd07c8bce10>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00005 seconds (files took 0.86887 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:263:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:207:in `block (4 levels) in <top (required)>'

  35) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing two data structures that contain two instances of the same ActiveRecord model produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234"> }
                  to eq { name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 {
                   name: "Marty McFly",
                   shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
                     id: nil,
               -     city: "Hill Valley",
               +     city: "Oakland",
               -     line_1: "123 Main St.",
               +     line_1: "456 Ponderosa Ct.",
                     line_2: "",
                     state: "CA",
               -     zip: "90382"
               +     zip: "91234"
                   }>
                 }
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fb4aa9a90a0>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00006 seconds (files took 0.79389 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:198:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:142:in `block (4 levels) in <top (required)>'

  36) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing two instances of the same ActiveRecord model produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">
                  to eq #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
                   id: nil,
               -   city: "Hill Valley",
               +   city: "Oakland",
               -   line_1: "123 Main St.",
               +   line_1: "456 Ponderosa Ct.",
                   line_2: "",
                   state: "CA",
               -   zip: "90382"
               +   zip: "91234"
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fa41c9851d0>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00003 seconds (files took 0.69489 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:52:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:5:in `block (4 levels) in <top (required)>'

  37) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing an ActiveRecord::Relation object with an array produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected #<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">, #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 2, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">]>
                  to eq [#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">]

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<ActiveRecord::Relation [
                   #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
                     id: 1,
                     city: "Hill Valley",
                     line_1: "123 Main St.",
                     line_2: "",
                     state: "CA",
                     zip: "90382"
                   }>,
               +   #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {
               +     id: 2,
               +     city: "Oakland",
               +     line_1: "456 Ponderosa Ct.",
               +     line_2: "",
               +     state: "CA",
               +     zip: "91234"
               +   }>
                 ]>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fa9e9919228>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00006 seconds (files took 0.60002 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:331:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:272:in `block (4 levels) in <top (required)>'

  38) Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing an ActiveRecord object with nothing produces the correct output
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(actual).to eq(expected)

               Expected nil
                  to eq #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007fb1a10f9448>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00004 seconds (files took 0.55975 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      Shared Example Group: "integration with ActiveRecord" called from ./spec/integration/rails/active_record_spec.rb:13
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/support/shared_examples/active_record.rb:133:in `block (5 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/support/shared_examples/active_record.rb:103:in `block (4 levels) in <top (required)>'

  39) Integration with RSpec's #eq matcher when comparing two different Time and ActiveSupport::TimeWithZone instances produces the correct failure message when used in the positive
      Failure/Error:
        expect(program).
          to produce_output_when_run(expected_output).
          in_color(color_enabled)

        Expected test to produce output, but it did not.

        Expected output to contain:

        ---START----------------------------------------------------------------
        Failures:

          1) test passes
             Failure/Error: expect(expected).to eq(actual)

               Expected 2011-12-13 14:15:16.000 UTC +00:00 (Time)
                  to eq 2011-12-13 16:15:16.000 CET +01:00 (ActiveSupport::TimeWithZone)

               Diff:

               ┌ (Key) ──────────────────────────┐
               │ ‹-› in expected, not in actual  │
               │ ‹+› in actual, not in expected  │
               │ ‹ › in both expected and actual │
               └─────────────────────────────────┘

                 #<ActiveSupport::TimeWithZone {
                   year: 2011,
                   month: 12,
                   day: 13,
               -   hour: 16,
               +   hour: 14,
                   min: 15,
                   sec: 16,
                   nsec: 0,
               -   zone: "CET",
               +   zone: "UTC",
               -   gmt_offset: 3600,
               +   gmt_offset: 0,
               -   utc: 2011-12-13 15:15:16.000 UTC +00:00 (Time)
               +   utc: 2011-12-13 14:15:16.000 UTC +00:00 (Time)
                 }>
        ---END------------------------------------------------------------------

        Actual output:

        ---START----------------------------------------------------------------
        An error occurred while loading ./tmp/integration_spec.rb.
        Failure/Error: test_plan.boot_active_record

        NoMethodError:
          private method `boot_active_record' called for #<TestPlan:0x00007f8e469656c8>
        # ./tmp/integration_spec.rb:8:in `<top (required)>'
        No examples found.

        Finished in 0.00002 seconds (files took 0.51364 seconds to load)
        0 examples, 0 failures, 1 error occurred outside of examples
        ---END------------------------------------------------------------------
      # ./lib/super_diff/rspec/monkey_patches.rb:42:in `handle_failure'
      # ./spec/integration/rspec/eq_matcher_spec.rb:301:in `block (4 levels) in <top (required)>'
      # ./spec/support/integration/helpers.rb:7:in `block in as_both_colored_and_uncolored'
      # ./spec/support/integration/helpers.rb:6:in `each'
      # ./spec/support/integration/helpers.rb:6:in `as_both_colored_and_uncolored'
      # ./spec/integration/rspec/eq_matcher_spec.rb:256:in `block (3 levels) in <top (required)>'

Finished in 8 minutes 17 seconds (files took 2.65 seconds to load)
403 examples, 39 failures

Failed examples:

rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:1:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:1:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:2:2:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:2:2:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:2:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:1:2:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:2:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:2:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:2:2:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:2:2:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:1:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:2:2:1:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/active_support' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:2:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:2:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:2:2:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:2:2:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:1:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:2:1:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #match matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:1:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:1:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the actual value is a HashWithIndifferentAccess and both hashes are one-dimensional and the expected hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:2:1:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:2:1:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are one-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:2:2:1:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains symbol keys produces the correct output
rspec ./spec/integration/rails/hash_with_indifferent_access_spec.rb[1:1:1:2:2:2:1] # Integration with Rails's HashWithIndifferentAccess when using 'super_diff/rspec-rails' and RSpec's #eq matcher when the expected value is a HashWithIndifferentAccess and both hashes are multi-dimensional and the actual hash contains string keys produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:1:2:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing instances of two different ActiveRecord models produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:1:4:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing two data structures that contain two instances of the same ActiveRecord model produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:1:3:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing an ActiveRecord object with nothing produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:1:5:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing two data structures that contain instances of two different ActiveRecord models produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:1:6:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing an ActiveRecord::Relation object with an array produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:1:1:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #eq matcher when comparing two instances of the same ActiveRecord model produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:1:2:1:1] # Integration with Rails's ActiveRecord class when using 'super_diff/rspec-rails' and RSpec's #match matcher when the expected value includes an ActiveRecord object produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:2:1:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #match matcher when the expected value includes an ActiveRecord object produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:1:2:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing instances of two different ActiveRecord models produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:1:5:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing two data structures that contain instances of two different ActiveRecord models produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:1:4:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing two data structures that contain two instances of the same ActiveRecord model produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:1:1:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing two instances of the same ActiveRecord model produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:1:6:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing an ActiveRecord::Relation object with an array produces the correct output
rspec ./spec/integration/rails/active_record_spec.rb[1:2:1:3:1] # Integration with Rails's ActiveRecord class when using 'super_diff/active_record' and RSpec's #eq matcher when comparing an ActiveRecord object with nothing produces the correct output
rspec ./spec/integration/rspec/eq_matcher_spec.rb:255 # Integration with RSpec's #eq matcher when comparing two different Time and ActiveSupport::TimeWithZone instances produces the correct failure message when used in the positive

Randomized with seed 24880

/Users/tspangle/.rbenv/versions/2.7.1/bin/ruby -I/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib:/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.3/lib /Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed
rake aborted!
Command failed with status (1): [rake spec...]
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/file_utils.rb:67:in `block in create_shell_runner'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/file_utils.rb:57:in `sh'
/Users/tspangle/dev/super_diff/Rakefile:10:in `block in <top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `each'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `synchronize'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:160:in `invoke_task'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `each'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block in top_level'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:125:in `run_with_threads'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:110:in `top_level'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:83:in `block in run'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/bin/rake:23:in `load'
/Users/tspangle/.rbenv/versions/2.7.1/bin/rake:23:in `<top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `load'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `kernel_load'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/cli/exec.rb:28:in `run'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/cli.rb:476:in `exec'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/cli.rb:30:in `dispatch'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/cli.rb:24:in `start'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:46:in `block in <top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/2.7.0/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:34:in `<top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/bin/bundle:23:in `load'
/Users/tspangle/.rbenv/versions/2.7.1/bin/bundle:23:in `<main>'
Tasks: TOP => default
mcmire commented 3 years ago

Hi @TravisSpangle, sorry for the delay, I thought I'd already responded to this. You're absolutely right that this is failing. It appears that the tests have been passing on CI so I never noticed this. This is totally a bug on this side and I figured out why this is happening so I'll fix this shortly.

TravisSpangle commented 3 years ago

Thank you @mcmire ! No worries on the delay and thank you for starting this project!

mcmire commented 3 years ago

This should be fixed in master now, want to give this another shot?

TravisSpangle commented 3 years ago

I updated my Gemfile to be: gem 'super_diff', :git => 'https://github.com/mcmire/super_diff.git', :branch => 'master', :ref => '6f1f896ac6dd7f20617b77ba455894a57aa25098'

And bundle install confirms: Using super_diff 0.5.3 from https://github.com/mcmire/super_diff.git (at 6f1f896@6f1f896)

I'm on my way out and will take a closer look later tonight. Thank you for spending time on this!

TravisSpangle commented 3 years ago

I could not get anywhere with this today. I uninstalled all versions of super_diff from my system and still get the error (with the above configuration) in my test app.

In my super_diff repo, I'm up to date with the commit 6f1f896ac6dd7f20617b77ba455894a57aa25098. Running bin/setup and then bundle exec rake I get

🍕bundle exec rake
rake aborted!
LoadError: cannot load such file -- rspec/core/rake_task
/Users/tspangle/dev/super_diff/Rakefile:1:in `require'
/Users/tspangle/dev/super_diff/Rakefile:1:in `<top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/bin/bundle:23:in `load'
/Users/tspangle/.rbenv/versions/2.7.1/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

However, if I run bin/rspec . --fail-fast it will give me a different error (instead of all of them being HashWithIndifferentAccess).

🍕 bin/rspec . --fail-fast
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:16: warning: method redefined; discarding old differ
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/fail_with.rb:13: warning: previous definition of differ was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:21: warning: method redefined; discarding old handle_failure
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb:33: warning: previous definition of handle_failure was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:55: warning: method redefined; discarding old console_code_for
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/console_codes.rb:39: warning: previous definition of console_code_for was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:70: warning: method redefined; discarding old wrap
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/console_codes.rb:58: warning: previous definition of wrap was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:83: warning: method redefined; discarding old initialize
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:16: warning: previous definition of initialize was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:106: warning: method redefined; discarding old colorized_message_lines
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:33: warning: previous definition of colorized_message_lines was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:133: warning: method redefined; discarding old add_shared_group_lines
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:197: warning: previous definition of add_shared_group_lines was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:213: warning: method redefined; discarding old failure_slash_error_lines
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:165: warning: previous definition of failure_slash_error_lines was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:233: warning: method redefined; discarding old find_failed_line
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:231: warning: previous definition of find_failed_line was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:248: warning: method redefined; discarding old implementation
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/syntax_highlighter.rb:44: warning: previous definition of implementation was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:258: warning: method redefined; discarding old format
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/object_formatter.rb:19: warning: previous definition of format was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:263: warning: method redefined; discarding old format
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/object_formatter.rb:32: warning: previous definition of format was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:272: warning: method redefined; discarding old from
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb:26: warning: previous definition of from was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:314: warning: method redefined; discarding old message_with_diff
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb:47: warning: previous definition of message_with_diff was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:327: warning: method redefined; discarding old diffs
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb:68: warning: previous definition of diffs was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:510: warning: method redefined; discarding old respond_to_attributes?
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:89: warning: previous definition of respond_to_attributes? was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:519: warning: method redefined; discarding old cache_all_values
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:70: warning: previous definition of cache_all_values was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:530: warning: method redefined; discarding old actual_has_attribute?
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:85: warning: previous definition of actual_has_attribute? was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:535: warning: method redefined; discarding old respond_to_failure_message_or
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:99: warning: previous definition of respond_to_failure_message_or was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:740: warning: method redefined; discarding old match_array
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers.rb:715: warning: previous definition of match_array was here
/Users/tspangle/dev/super_diff/support/test_plan.rb:36: warning: already initialized constant SuperDiff::IntegrationTests
/Users/tspangle/dev/super_diff/spec/support/integration/helpers.rb:2: warning: previous definition of IntegrationTests was here

Randomized with seed 25164

SuperDiff::EqualityMatchers::Main
  #call
    given two arrays containing custom objects with differing attributes
      returns a message along with the diff
    given differing numbers
      returns a message along with a comparison
    given two hashes containing arrays with differing values
      returns a message along with the diff
    given two equal-size, one-dimensional hashes where the actual has extra keys
      returns a message along with the diff
    given the same hash
      returns an empty string
    when a secondary layer of a data structure refers to itself
      replaces the reference with ∙∙∙
    given two equal-length, one-dimensional arrays with differing strings
      returns a message along with the diff
    when the expected value is a data structure that refers to itself somewhere inside of it
      replaces the reference with ∙∙∙
    given two hashes containing custom objects with differing attributes
      returns a message along with the diff
    given two hashes containing hashes with differing values
      returns a message along with the diff
    given multi-line strings that contain color codes
      escapes the color codes (FAILED - 1)

Failures:

  1) SuperDiff::EqualityMatchers::Main#call given multi-line strings that contain color codes escapes the color codes
     Failure/Error: expect(actual_output).to eq(expected_output)

       Expected "Differing strings.\n\nExpected: \"This is a line\\nAnd that's a line\\nAnd there's a line too\\n\"\n  Actual: \"This is a line\\nSomething completely different\\nAnd there's a line too\\n\"\n\nDiff:\n\n  This is a line\\n\n- And that's a line\\n\n+ Something completely different\\n\n  And there's a line too\\n"
          to eq "Differing strings.\n\nExpected: \"\\e[34mThis is a line\\e[0m\\n\\e[38;5;176mAnd that's a line\\e[0m\\n\\e[38;2;47;59;164mAnd there's a line too\\e[0m\\n\"\n  Actual: \"\\e[34mThis is a line\\e[0m\\n\\e[38;5;176mSomething completely different\\e[0m\\n\\e[38;2;47;59;164mAnd there's a line too\\e[0m\\n\"\n\nDiff:\n\n  \\e[34mThis is a line\\e[0m\\n\n- \\e[38;5;176mAnd that's a line\\e[0m\\n\n+ \\e[38;5;176mSomething completely different\\e[0m\\n\n  \\e[38;2;47;59;164mAnd there's a line too\\e[0m\\n"

       Diff:

       ┌ (Key) ──────────────────────────┐
       │ ‹-› in expected, not in actual  │
       │ ‹+› in actual, not in expected  │
       │ ‹ › in both expected and actual │
       └─────────────────────────────────┘

         Differing strings.\n
         \n
       - Expected: \"\\e[34mThis is a line\\e[0m\\n\\e[38;5;176mAnd that's a line\\e[0m\\n\\e[38;2;47;59;164mAnd there's a line too\\e[0m\\n\"\n
       -   Actual: \"\\e[34mThis is a line\\e[0m\\n\\e[38;5;176mSomething completely different\\e[0m\\n\\e[38;2;47;59;164mAnd there's a line too\\e[0m\\n\"\n
       + Expected: \"This is a line\\nAnd that's a line\\nAnd there's a line too\\n\"\n
       +   Actual: \"This is a line\\nSomething completely different\\nAnd there's a line too\\n\"\n
         \n
         Diff:\n
         \n
       -   \\e[34mThis is a line\\e[0m\\n\n
       - - \\e[38;5;176mAnd that's a line\\e[0m\\n\n
       - + \\e[38;5;176mSomething completely different\\e[0m\\n\n
       -   \\e[38;2;47;59;164mAnd there's a line too\\e[0m\\n
       +   This is a line\\n\n
       + - And that's a line\\n\n
       + + Something completely different\\n\n
       +   And there's a line too\\n
     # ./lib/super_diff/rspec/monkey_patches.rb:41:in `handle_failure'
     # ./spec/unit/equality_matchers/main_spec.rb:291:in `block (4 levels) in <top (required)>'

Finished in 0.06586 seconds (files took 1.6 seconds to load)
11 examples, 1 failure

Failed examples:

rspec ./spec/unit/equality_matchers/main_spec.rb:230 # SuperDiff::EqualityMatchers::Main#call given multi-line strings that contain color codes escapes the color codes

Randomized with seed 25164

I'm a bit lost at this point at how I can be useful.

mcmire commented 3 years ago

@TravisSpangle Oof 😖 sorry about that. I have a PR to fix running rake here so that should work again once I merge that: https://github.com/mcmire/super_diff/pull/116. In terms of bin/rspec, that's kind of strange and I'm not seeing the same thing. Can you do a full run and paste all of the tests that are failing for you? Additionally, is there some special way that you're running tests — say, are you using a particular terminal or using a different OS or something?

TravisSpangle commented 3 years ago

My output for using Mac OS Terminal

🍕 git checkout master; git pull
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
Already up to date.
🍕 bin/setup;bundle exec rake
== Installing Ruby dependencies ==
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_0_rspec_lt_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_0_rspec_lt_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_0_rspec_gte_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_0_rspec_gte_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_1_rspec_lt_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_1_rspec_lt_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_1_rspec_gte_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_1_rspec_gte_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_2_rspec_lt_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_2_rspec_lt_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_2_rspec_gte_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_5_2_rspec_gte_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/no_rails_rspec_lt_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/no_rails_rspec_lt_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/no_rails_rspec_gte_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/no_rails_rspec_gte_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_6_0_rspec_lt_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_6_0_rspec_lt_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied
true
>> bundle check --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_6_0_rspec_gte_3_10.gemfile' || bundle install --gemfile='/Users/tspangle/dev/super_diff/gemfiles/rails_6_0_rspec_gte_3_10.gemfile' --retry 1
The dependency pry-nav (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency activerecord-jdbcsqlite3-adapter (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The dependency jdbc-sqlite3 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for java. To add those platforms to the bundle, run `bundle lock --add-platform java`.
The Gemfile's dependencies are satisfied

Setup complete!
rake aborted!
LoadError: cannot load such file -- rspec/core/rake_task
/Users/tspangle/dev/super_diff/Rakefile:1:in `require'
/Users/tspangle/dev/super_diff/Rakefile:1:in `<top (required)>'
/Users/tspangle/.rbenv/versions/2.7.1/bin/bundle:23:in `load'
/Users/tspangle/.rbenv/versions/2.7.1/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)
bin/rspec . --format progress
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:16: warning: method redefined; discarding old differ
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/fail_with.rb:13: warning: previous definition of differ was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:21: warning: method redefined; discarding old handle_failure
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/expectations/handler.rb:33: warning: previous definition of handle_failure was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:55: warning: method redefined; discarding old console_code_for
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/console_codes.rb:39: warning: previous definition of console_code_for was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:70: warning: method redefined; discarding old wrap
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/console_codes.rb:58: warning: previous definition of wrap was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:83: warning: method redefined; discarding old initialize
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:16: warning: previous definition of initialize was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:106: warning: method redefined; discarding old colorized_message_lines
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:33: warning: previous definition of colorized_message_lines was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:133: warning: method redefined; discarding old add_shared_group_lines
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:197: warning: previous definition of add_shared_group_lines was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:213: warning: method redefined; discarding old failure_slash_error_lines
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:165: warning: previous definition of failure_slash_error_lines was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:233: warning: method redefined; discarding old find_failed_line
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/exception_presenter.rb:231: warning: previous definition of find_failed_line was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:248: warning: method redefined; discarding old implementation
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.2/lib/rspec/core/formatters/syntax_highlighter.rb:44: warning: previous definition of implementation was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:258: warning: method redefined; discarding old format
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/object_formatter.rb:19: warning: previous definition of format was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:263: warning: method redefined; discarding old format
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.3/lib/rspec/support/object_formatter.rb:32: warning: previous definition of format was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:272: warning: method redefined; discarding old from
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb:26: warning: previous definition of from was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:314: warning: method redefined; discarding old message_with_diff
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb:47: warning: previous definition of message_with_diff was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:327: warning: method redefined; discarding old diffs
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb:68: warning: previous definition of diffs was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:510: warning: method redefined; discarding old respond_to_attributes?
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:89: warning: previous definition of respond_to_attributes? was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:519: warning: method redefined; discarding old cache_all_values
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:70: warning: previous definition of cache_all_values was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:530: warning: method redefined; discarding old actual_has_attribute?
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:85: warning: previous definition of actual_has_attribute? was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:535: warning: method redefined; discarding old respond_to_failure_message_or
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/have_attributes.rb:99: warning: previous definition of respond_to_failure_message_or was here
/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:740: warning: method redefined; discarding old match_array
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers.rb:715: warning: previous definition of match_array was here
/Users/tspangle/dev/super_diff/support/test_plan.rb:36: warning: already initialized constant SuperDiff::IntegrationTests
/Users/tspangle/dev/super_diff/spec/support/integration/helpers.rb:2: warning: previous definition of IntegrationTests was here

Randomized with seed 60895
...................................................................................../Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be.rb:235: warning: instance variable @actual not initialized
./Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be.rb:235: warning: instance variable @actual not initialized
.............................................................................../Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb:59: warning: instance variable @actual not initialized
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb:64: warning: instance variable @actual not initialized
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb:59: warning: instance variable @actual not initialized
./Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb:59: warning: instance variable @actual not initialized
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb:64: warning: instance variable @actual not initialized
/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/has.rb:59: warning: instance variable @actual not initialized
.../Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:615: warning: instance variable @divergent_items not initialized
./Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:615: warning: instance variable @divergent_items not initialized
................................/Users/tspangle/dev/super_diff/lib/super_diff/rspec/monkey_patches.rb:483: warning: instance variable @actual not initialized
.F............................................................................................................................................................................................/Users/tspangle/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rspec-expectations-3.9.2/lib/rspec/matchers/built_in/be.rb:235: warning: instance variable @actual not initialized
.............

Failures:

  1) test passes
     Failure/Error: values = ["Marty", "Einie"]
       Expected String to === :foo.
     # ./lib/super_diff/rspec/monkey_patches.rb:41:in `handle_failure'
     # ./tmp/integration_spec.rb:13:in `block (2 levels) in <top (required)>'

Finished in 8 minutes 7 seconds (files took 1.43 seconds to load)
405 examples, 1 failure

Failed examples:

rspec ./tmp/integration_spec.rb:12 # test passes

Randomized with seed 60895
TravisSpangle commented 3 years ago

I wonder if it's worth creating a Docker Image to run these specs on for a consistent environment.

mcmire commented 3 years ago

@TravisSpangle I recently merged #116 so the rake issue should be fixed now. I still can't reproduce the error where ./spec/unit/equality_matchers/main_spec.rb:230 is failing though. Do you mind trying this again?

TravisSpangle commented 3 years ago

:+1:, thank you. That resolved the issues I was having in my repo of super_diff.

mcmire commented 3 years ago

Yay, good to know!