Gilded Rose sample that illustrates changing code safely.

Uses three advanced developer testing techniques: characterization, mutation, and approval testing.
Creates simplest failing characterization test by hand.
Creates simplest passing characterization test by hand.
Enhances simplest failing characterization test by hand.
Enhances simplest passing characterization test by hand.
Adds another item.
Enhances simplest failing characterization test by hand.
Enhances simplest passing characterization test by hand.
Extracts out the items provider.
Extracts out the the characterization and expected result.
Extracts out the characterization.
Extracts out the expected results.
Adds the simplecov gem so that we can see code coverage in RubyMine.
Adds Backstage Passes to the items that form the characterization test.
Uses hash-based characterization rather than RSpec expectations.
Increases the specificity of the characterization by calling the #update_quality method for 20 days.
Increases the specificity of the characterization by adding a legendary item.
Adds support for mutation testing.
Increases the specificity of the characterization by adding more items.
Extracts the #update_item_quality method.