From 17d2a19e6620a6f9f325525b30454e052ab97649 Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi Date: Sat, 18 Mar 2023 13:28:53 +0000 Subject: [PATCH 1/7] set up rspec environment --- .rspec | 1 + Gemfile | 7 ++ Gemfile.lock | 26 +++++ README.md => documents/README.md | 0 .../images}/example_ten_pin_scoring.png | Bin spec/spec_helper.rb | 98 ++++++++++++++++++ 6 files changed, 132 insertions(+) create mode 100644 .rspec create mode 100644 Gemfile create mode 100644 Gemfile.lock rename README.md => documents/README.md (100%) rename {images => documents/images}/example_ten_pin_scoring.png (100%) create mode 100644 spec/spec_helper.rb diff --git a/.rspec b/.rspec new file mode 100644 index 00000000..c99d2e73 --- /dev/null +++ b/.rspec @@ -0,0 +1 @@ +--require spec_helper diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..41df210d --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +# gem "rails" + +gem "rspec", "~> 3.12" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..aac3c6c8 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,26 @@ +GEM + remote: https://rubygems.org/ + specs: + diff-lcs (1.5.0) + rspec (3.12.0) + rspec-core (~> 3.12.0) + rspec-expectations (~> 3.12.0) + rspec-mocks (~> 3.12.0) + rspec-core (3.12.1) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.4) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-support (3.12.0) + +PLATFORMS + x86_64-darwin-21 + +DEPENDENCIES + rspec (~> 3.12) + +BUNDLED WITH + 2.4.8 diff --git a/README.md b/documents/README.md similarity index 100% rename from README.md rename to documents/README.md diff --git a/images/example_ten_pin_scoring.png b/documents/images/example_ten_pin_scoring.png similarity index 100% rename from images/example_ten_pin_scoring.png rename to documents/images/example_ten_pin_scoring.png diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 00000000..5ae5b696 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,98 @@ +# This file was generated by the `rspec --init` command. Conventionally, all +# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. +# The generated `.rspec` file contains `--require spec_helper` which will cause +# this file to always be loaded, without a need to explicitly require it in any +# files. +# +# Given that it is always loaded, you are encouraged to keep this file as +# light-weight as possible. Requiring heavyweight dependencies from this file +# will add to the boot time of your test suite on EVERY test run, even for an +# individual file that may not need all of that loaded. Instead, consider making +# a separate helper file that requires the additional dependencies and performs +# the additional setup, and require it from the spec files that actually need +# it. +# +# See https://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration +RSpec.configure do |config| + # rspec-expectations config goes here. You can use an alternate + # assertion/expectation library such as wrong or the stdlib/minitest + # assertions if you prefer. + config.expect_with :rspec do |expectations| + # This option will default to `true` in RSpec 4. It makes the `description` + # and `failure_message` of custom matchers include text for helper methods + # defined using `chain`, e.g.: + # be_bigger_than(2).and_smaller_than(4).description + # # => "be bigger than 2 and smaller than 4" + # ...rather than: + # # => "be bigger than 2" + expectations.include_chain_clauses_in_custom_matcher_descriptions = true + end + + # rspec-mocks config goes here. You can use an alternate test double + # library (such as bogus or mocha) by changing the `mock_with` option here. + config.mock_with :rspec do |mocks| + # Prevents you from mocking or stubbing a method that does not exist on + # a real object. This is generally recommended, and will default to + # `true` in RSpec 4. + mocks.verify_partial_doubles = true + end + + # This option will default to `:apply_to_host_groups` in RSpec 4 (and will + # have no way to turn it off -- the option exists only for backwards + # compatibility in RSpec 3). It causes shared context metadata to be + # inherited by the metadata hash of host groups and examples, rather than + # triggering implicit auto-inclusion in groups with matching metadata. + config.shared_context_metadata_behavior = :apply_to_host_groups + +# The settings below are suggested to provide a good initial experience +# with RSpec, but feel free to customize to your heart's content. +=begin + # This allows you to limit a spec run to individual examples or groups + # you care about by tagging them with `:focus` metadata. When nothing + # is tagged with `:focus`, all examples get run. RSpec also provides + # aliases for `it`, `describe`, and `context` that include `:focus` + # metadata: `fit`, `fdescribe` and `fcontext`, respectively. + config.filter_run_when_matching :focus + + # Allows RSpec to persist some state between runs in order to support + # the `--only-failures` and `--next-failure` CLI options. We recommend + # you configure your source control system to ignore this file. + config.example_status_persistence_file_path = "spec/examples.txt" + + # Limits the available syntax to the non-monkey patched syntax that is + # recommended. For more details, see: + # https://relishapp.com/rspec/rspec-core/docs/configuration/zero-monkey-patching-mode + config.disable_monkey_patching! + + # This setting enables warnings. It's recommended, but in some cases may + # be too noisy due to issues in dependencies. + config.warnings = true + + # Many RSpec users commonly either run the entire suite or an individual + # file, and it's useful to allow more verbose output when running an + # individual spec file. + if config.files_to_run.one? + # Use the documentation formatter for detailed output, + # unless a formatter has already been configured + # (e.g. via a command-line flag). + config.default_formatter = "doc" + end + + # Print the 10 slowest examples and example groups at the + # end of the spec run, to help surface which specs are running + # particularly slow. + config.profile_examples = 10 + + # Run specs in random order to surface order dependencies. If you find an + # order dependency and want to debug it, you can fix the order by providing + # the seed, which is printed after each run. + # --seed 1234 + config.order = :random + + # Seed global randomization in this process using the `--seed` CLI option. + # Setting this allows you to use `--seed` to deterministically reproduce + # test failures related to randomization by passing the same `--seed` value + # as the one that triggered the failure. + Kernel.srand config.seed +=end +end From 5f470d5411fd8c93bdf9351227417dbfc7bd0f0c Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi Date: Sat, 18 Mar 2023 18:41:37 +0000 Subject: [PATCH 2/7] created README and diagram --- documents/README.md | 62 +++------------------- documents/images/Diagram Scorecount.png | Bin 0 -> 105647 bytes documents/instructions.md | 65 ++++++++++++++++++++++++ lib/frame.rb | 0 lib/scorecount.rb | 0 spec/frame_spec.rb | 0 spec/scorecount.rb | 0 7 files changed, 73 insertions(+), 54 deletions(-) create mode 100644 documents/images/Diagram Scorecount.png create mode 100644 documents/instructions.md create mode 100644 lib/frame.rb create mode 100644 lib/scorecount.rb create mode 100644 spec/frame_spec.rb create mode 100644 spec/scorecount.rb diff --git a/documents/README.md b/documents/README.md index 15dc4762..f0a1f661 100644 --- a/documents/README.md +++ b/documents/README.md @@ -1,65 +1,19 @@ -Bowling Challenge in Ruby -================= +Game Scorecount +=============== -* Feel free to use google, your notes, books, etc. but work on your own -* If you refer to the solution of another coach or student, please put a link to that in your README -* If you have a partial solution, **still check in a partial solution** -* You must submit a pull request to this repo with your code by 9am Monday week +![Diagram for Scorecount](images/Diagram%20Scorecount.png) -## The Task +# Content -**THIS IS NOT A BOWLING GAME, IT IS A BOWLING SCORECARD PROGRAM. DO NOT GENERATE RANDOM ROLLS. THE USER INPUTS THE ROLLS.** +- **class Frame** -Count and sum the scores of a bowling game for one player. For this challenge, you do _not_ need to build a web app with a UI, instead, just focus on the logic for bowling (you also don't need a database). Next end-of-unit challenge, you will have the chance to translate the logic to Javascript and build a user interface. +It generates the score for the one of the frames based on user input for each roll. -A bowling game consists of 10 frames in which the player tries to knock down the 10 pins. In every frame the player can roll one or two times. The actual number depends on strikes and spares. The score of a frame is the number of knocked down pins plus bonuses for strikes and spares. After every frame the 10 pins are reset. +- **class Scorecount** -As usual please start by +It runs each frame of a game and returns the sum of their scores. -* Forking this repo -* Finally submit a pull request before Monday week at 9am with your solution or partial solution. However much or little amount of code you wrote please please please submit a pull request before Monday week at 9am. -___STRONG HINT, IGNORE AT YOUR PERIL:___ Bowling is a deceptively complex game. Careful thought and thorough diagramming — both before and throughout — will save you literal hours of your life. -## Focus for this challenge -The focus for this challenge is to write high-quality code. -In order to do this, you may pay particular attention to the following: -* Using diagramming to plan your approach to the challenge -* TDD your code -* Focus on testing behaviour rather than state -* Commit often, with good commit messages -* Single Responsibility Principle and encapsulation -* Clear and readable code - -## Bowling — how does it work? - -### Strikes - -The player has a strike if he knocks down all 10 pins with the first roll in a frame. The frame ends immediately (since there are no pins left for a second roll). The bonus for that frame is the number of pins knocked down by the next two rolls. That would be the next frame, unless the player rolls another strike. - -### Spares - -The player has a spare if the knocks down all 10 pins with the two rolls of a frame. The bonus for that frame is the number of pins knocked down by the next roll (first roll of next frame). - -### 10th frame - -If the player rolls a strike or spare in the 10th frame they can roll the additional balls for the bonus. But they can never roll more than 3 balls in the 10th frame. The additional rolls only count for the bonus not for the regular frame count. - - 10, 10, 10 in the 10th frame gives 30 points (10 points for the regular first strike and 20 points for the bonus). - 1, 9, 10 in the 10th frame gives 20 points (10 points for the regular spare and 10 points for the bonus). - -### Gutter Game - -A Gutter Game is when the player never hits a pin (20 zero scores). - -### Perfect Game - -A Perfect Game is when the player rolls 12 strikes (10 regular strikes and 2 strikes for the bonus in the 10th frame). The Perfect Game scores 300 points. - -In the image below you can find some score examples. - -More about ten pin bowling here: http://en.wikipedia.org/wiki/Ten-pin_bowling - -![Ten Pin Score Example](images/example_ten_pin_scoring.png) diff --git a/documents/images/Diagram Scorecount.png b/documents/images/Diagram Scorecount.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecfebc57c3f524e79963039a5d12a4324645e88 GIT binary patch literal 105647 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[&Jc8Rwow|as5Jh#8 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 UcAK3Sybh9_w31Yrgh|l<2k!n#Bme*a literal 0 HcmV?d00001 diff --git a/documents/instructions.md b/documents/instructions.md new file mode 100644 index 00000000..15dc4762 --- /dev/null +++ b/documents/instructions.md @@ -0,0 +1,65 @@ +Bowling Challenge in Ruby +================= + +* Feel free to use google, your notes, books, etc. but work on your own +* If you refer to the solution of another coach or student, please put a link to that in your README +* If you have a partial solution, **still check in a partial solution** +* You must submit a pull request to this repo with your code by 9am Monday week + +## The Task + +**THIS IS NOT A BOWLING GAME, IT IS A BOWLING SCORECARD PROGRAM. DO NOT GENERATE RANDOM ROLLS. THE USER INPUTS THE ROLLS.** + +Count and sum the scores of a bowling game for one player. For this challenge, you do _not_ need to build a web app with a UI, instead, just focus on the logic for bowling (you also don't need a database). Next end-of-unit challenge, you will have the chance to translate the logic to Javascript and build a user interface. + +A bowling game consists of 10 frames in which the player tries to knock down the 10 pins. In every frame the player can roll one or two times. The actual number depends on strikes and spares. The score of a frame is the number of knocked down pins plus bonuses for strikes and spares. After every frame the 10 pins are reset. + +As usual please start by + +* Forking this repo + +* Finally submit a pull request before Monday week at 9am with your solution or partial solution. However much or little amount of code you wrote please please please submit a pull request before Monday week at 9am. + +___STRONG HINT, IGNORE AT YOUR PERIL:___ Bowling is a deceptively complex game. Careful thought and thorough diagramming — both before and throughout — will save you literal hours of your life. + +## Focus for this challenge +The focus for this challenge is to write high-quality code. + +In order to do this, you may pay particular attention to the following: +* Using diagramming to plan your approach to the challenge +* TDD your code +* Focus on testing behaviour rather than state +* Commit often, with good commit messages +* Single Responsibility Principle and encapsulation +* Clear and readable code + +## Bowling — how does it work? + +### Strikes + +The player has a strike if he knocks down all 10 pins with the first roll in a frame. The frame ends immediately (since there are no pins left for a second roll). The bonus for that frame is the number of pins knocked down by the next two rolls. That would be the next frame, unless the player rolls another strike. + +### Spares + +The player has a spare if the knocks down all 10 pins with the two rolls of a frame. The bonus for that frame is the number of pins knocked down by the next roll (first roll of next frame). + +### 10th frame + +If the player rolls a strike or spare in the 10th frame they can roll the additional balls for the bonus. But they can never roll more than 3 balls in the 10th frame. The additional rolls only count for the bonus not for the regular frame count. + + 10, 10, 10 in the 10th frame gives 30 points (10 points for the regular first strike and 20 points for the bonus). + 1, 9, 10 in the 10th frame gives 20 points (10 points for the regular spare and 10 points for the bonus). + +### Gutter Game + +A Gutter Game is when the player never hits a pin (20 zero scores). + +### Perfect Game + +A Perfect Game is when the player rolls 12 strikes (10 regular strikes and 2 strikes for the bonus in the 10th frame). The Perfect Game scores 300 points. + +In the image below you can find some score examples. + +More about ten pin bowling here: http://en.wikipedia.org/wiki/Ten-pin_bowling + +![Ten Pin Score Example](images/example_ten_pin_scoring.png) diff --git a/lib/frame.rb b/lib/frame.rb new file mode 100644 index 00000000..e69de29b diff --git a/lib/scorecount.rb b/lib/scorecount.rb new file mode 100644 index 00000000..e69de29b diff --git a/spec/frame_spec.rb b/spec/frame_spec.rb new file mode 100644 index 00000000..e69de29b diff --git a/spec/scorecount.rb b/spec/scorecount.rb new file mode 100644 index 00000000..e69de29b From b4c6da73033d9d5a462938ba2e50886e8c12960e Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi Date: Sat, 18 Mar 2023 19:02:02 +0000 Subject: [PATCH 3/7] moved README to the right folder --- documents/README.md => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename documents/README.md => README.md (100%) diff --git a/documents/README.md b/README.md similarity index 100% rename from documents/README.md rename to README.md From 12e69b85d07bd201c883e41d371e3f146477ac0a Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi Date: Sun, 19 Mar 2023 13:32:43 +0000 Subject: [PATCH 4/7] test driven and impemented Frame class --- lib/frame.rb | 35 ++++++++++ spec/frame_spec.rb | 78 ++++++++++++++++++++++ spec/{scorecount.rb => scorecount_spec.rb} | 0 3 files changed, 113 insertions(+) rename spec/{scorecount.rb => scorecount_spec.rb} (100%) diff --git a/lib/frame.rb b/lib/frame.rb index e69de29b..773160d4 100644 --- a/lib/frame.rb +++ b/lib/frame.rb @@ -0,0 +1,35 @@ +class Frame + def initialize(io) + @io = io + @frame = [] + @pins = 0 + end + + def check_invalid + raise 'Invalid entry.' if (@pins < 0 || @pins > 10) + raise 'Invalid entry.' if @frame.size == 1 && (@pins < 0 || @pins > (10 - @frame[0])) + end + + def roll + @pins = @io.gets.to_i + check_invalid + @frame << @pins + end + + def strike? + @frame[0] == 10 && @frame.size == 1 + end + + def spare? + @frame.sum == 10 && @frame.size == 2 + end + + def run + roll + return @frame = ['X'] if strike? + roll + @frame[1] = '/' if spare? + return @frame + end + +end \ No newline at end of file diff --git a/spec/frame_spec.rb b/spec/frame_spec.rb index e69de29b..8279485b 100644 --- a/spec/frame_spec.rb +++ b/spec/frame_spec.rb @@ -0,0 +1,78 @@ +require 'frame' + +describe Frame do + + context '#roll' do + it 'throws an error if the amount of pins hit is an invalid entry' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('12') + expect{ frame.roll }.to raise_error 'Invalid entry.' + end + + it 'plays a roll' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('5') + expect(frame.roll[0]).to eq 5 + end + end + + context '#strike' do + it 'returns true if a strike has been achieved' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('10') + expect(frame.roll).to eq [10] + expect(frame.strike?).to eq true + end + end + + context '#spare' do + it 'returns true if a spare has been achieved' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('6') + expect(io).to receive(:gets).and_return('4') + frame.roll + + expect(frame.roll.sum).to eq 10 + expect(frame.spare?).to eq true + end + end + + context '#run' do + it 'plays the whole frame and returns the score for that frame' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('3') + expect(io).to receive(:gets).and_return('5') + expect(frame.run).to eq [3, 5] + end + + it 'plays the whole frame and returns a strike' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('10') + expect(frame.run).to eq ['X'] + end + + it 'plays the whole frame and returns a spare' do + io = double :io + frame = Frame.new(io) + + expect(io).to receive(:gets).and_return('9') + expect(io).to receive(:gets).and_return('1') + expect(frame.run).to eq [9, '/'] + end + end + + + +end \ No newline at end of file diff --git a/spec/scorecount.rb b/spec/scorecount_spec.rb similarity index 100% rename from spec/scorecount.rb rename to spec/scorecount_spec.rb From 454472c0f2d718b5b780cda132a3b4f0a9f869aa Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi <99917191+francescoGuglielmi@users.noreply.github.com> Date: Sun, 19 Mar 2023 13:35:47 +0000 Subject: [PATCH 5/7] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0a1f661..28cda26b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Game Scorecount =============== -![Diagram for Scorecount](images/Diagram%20Scorecount.png) +![Diagram for Scorecount](documents/images/Diagram Scorecount.png) # Content From 89bf048639e9d731cf30b6f27763ec71c5b81fd9 Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi <99917191+francescoGuglielmi@users.noreply.github.com> Date: Sun, 19 Mar 2023 14:17:08 +0000 Subject: [PATCH 6/7] fixed README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 28cda26b..007a6ca0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Game Scorecount =============== -![Diagram for Scorecount](documents/images/Diagram Scorecount.png) +![Diagram for Scorecount](https://github.com/francescoGuglielmi/bowling-challenge-ruby/blob/454472c0f2d718b5b780cda132a3b4f0a9f869aa/documents/images/Diagram%20Scorecount.png) # Content From b32f934aaf74e556bb7bd5854402ecb025074884 Mon Sep 17 00:00:00 2001 From: Francesco Guglielmi Date: Mon, 20 Mar 2023 10:17:25 +0000 Subject: [PATCH 7/7] re-designed classes signature. Test driving missing --- README.md | 1 - lib/frame.rb | 20 +++++++++++-- lib/scorecount.rb | 63 +++++++++++++++++++++++++++++++++++++++++ spec/frame_spec.rb | 3 -- spec/scorecount_spec.rb | 24 ++++++++++++++++ 5 files changed, 105 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f0a1f661..e47b598d 100644 --- a/README.md +++ b/README.md @@ -16,4 +16,3 @@ It runs each frame of a game and returns the sum of their scores. - diff --git a/lib/frame.rb b/lib/frame.rb index 773160d4..2e119173 100644 --- a/lib/frame.rb +++ b/lib/frame.rb @@ -17,11 +17,11 @@ def roll end def strike? - @frame[0] == 10 && @frame.size == 1 + true if @frame[0] == 10 && @frame.size == 1 end def spare? - @frame.sum == 10 && @frame.size == 2 + true if @frame.size == 2 && @frame.sum == 10 end def run @@ -32,4 +32,20 @@ def run return @frame end + def tenth + @pins = @io.gets.to_i + @pins = 'X' if @pins == 10 + @frame << @pins + @pins = @io.gets.to_i + @frame << @pins + if (!@frame.include? 'X') && @frame.sum == 10 + @frame[1] = '/' + end + if (@frame.include? '/') || (@frame.include? 'X') + @pins = @io.gets.to_i + @frame << @pins + end + return @frame + end + end \ No newline at end of file diff --git a/lib/scorecount.rb b/lib/scorecount.rb index e69de29b..9c3e22d1 100644 --- a/lib/scorecount.rb +++ b/lib/scorecount.rb @@ -0,0 +1,63 @@ +require_relative './frame' + +class Scorecount + def initialize(io) + @io = io + @points = 0 + @frames = [] + @bonus = [] + end + + def count_points + @frames.flatten!.each_with_index do |score, index| + if score == 'X' + if (index == @frames.length - 1) || (index == @frames.length - 2) + @points += 10 + else + @points += 10 + @bonus << @frames[index + 1] + @bonus << @frames[index + 2] + end + elsif score == '/' + @points += 10 + @points -= @frames[index - 1] + puts index - 1 + puts @frames[index - 1] + @bonus << @frames[index + 1] + else + @points += score + end + end + end + + def calculate_bonus + #@bonus.each do |frame| + @bonus.each do |score| + if score == 'X' + score = 10 + end + @points += score + end + #end + + end + + def run + n = 1 + 9.times do + puts "Frame #{n}" + frame = Frame.new(@io).run + @frames << frame + n += 1 + end + @frames << Frame.new(@io).tenth + print @frames + count_points + calculate_bonus + p @points + return @points + end + +end + +Scorecount.new(Kernel).run \ No newline at end of file diff --git a/spec/frame_spec.rb b/spec/frame_spec.rb index 8279485b..79a392fa 100644 --- a/spec/frame_spec.rb +++ b/spec/frame_spec.rb @@ -72,7 +72,4 @@ expect(frame.run).to eq [9, '/'] end end - - - end \ No newline at end of file diff --git a/spec/scorecount_spec.rb b/spec/scorecount_spec.rb index e69de29b..90b52f56 100644 --- a/spec/scorecount_spec.rb +++ b/spec/scorecount_spec.rb @@ -0,0 +1,24 @@ +require 'scorecount' + +describe Scorecount do + + context '#count_points' do + it 'counts and returns 0' do + scorecount = Scorecount.new + + expect(scorecount.count_points).to eq 0 + end + end + + context '#bonus_strike' do + it 'adds the bonus for achieving a strike' do + io = double :io + frame = Frame.new + scorecount = Scorecount.new + + expect(io).to receive(:gets).and_return('10') + expect + end + end + +end \ No newline at end of file