From bdc580a3450d5fdfffc267ff7f49c49772c6e1ef Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 14 Sep 2021 00:53:56 +0900 Subject: [PATCH 01/23] init --- challengeA/shogo_takasaki/src/simulator.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 challengeA/shogo_takasaki/src/simulator.rb diff --git a/challengeA/shogo_takasaki/src/simulator.rb b/challengeA/shogo_takasaki/src/simulator.rb new file mode 100644 index 000000000..5a43a50af --- /dev/null +++ b/challengeA/shogo_takasaki/src/simulator.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# Simulator for electric usage +class Simulator + attr_accessor :ampere, :usage + + def initialize(ampere, usage) + @ampere = ampere + @usage = usage + end + + def simulate + [ + { provider_name: 'Looopでんき', plan_name: 'おうちプラン', price: '1234' }, + { provider_name: 'Looopでんき2', plan_name: 'おうちプラン4', price: '12345' }, + { provider_name: 'Looopでんき3', plan_name: 'おうちプラン5', price: '12346' } + ] + end +end From dc10b725130da5f10210fd2f718f9a49c3ce875e Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 14 Sep 2021 01:21:33 +0900 Subject: [PATCH 02/23] add test data --- challengeA/shogo_takasaki/src/plans.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 challengeA/shogo_takasaki/src/plans.json diff --git a/challengeA/shogo_takasaki/src/plans.json b/challengeA/shogo_takasaki/src/plans.json new file mode 100644 index 000000000..cfda7bd40 --- /dev/null +++ b/challengeA/shogo_takasaki/src/plans.json @@ -0,0 +1,18 @@ +{ + "tokyo_energy_partner_b": { + "basic": { + "10": 286, + "15": 429, + "20": 572, + "30": 858, + "40": 1144, + "50": 1430, + "60": 1716 + }, + "quantity": { + "120": 19.88, + "300": 24.48, + "2000000000": 30.57 + } + } +} From 4f17ed7970e6d223cb96132ff7629c37aeb6954b Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 14 Sep 2021 01:43:25 +0900 Subject: [PATCH 03/23] =?UTF-8?q?JSON=E5=BD=A2=E5=BC=8F=E3=82=92suppliers?= =?UTF-8?q?=E6=AF=8E=E3=81=AE=E9=85=8D=E5=88=97=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/plans.json | 34 +++++++++++++----------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plans.json b/challengeA/shogo_takasaki/src/plans.json index cfda7bd40..da03ca640 100644 --- a/challengeA/shogo_takasaki/src/plans.json +++ b/challengeA/shogo_takasaki/src/plans.json @@ -1,18 +1,22 @@ { - "tokyo_energy_partner_b": { - "basic": { - "10": 286, - "15": 429, - "20": 572, - "30": 858, - "40": 1144, - "50": 1430, - "60": 1716 - }, - "quantity": { - "120": 19.88, - "300": 24.48, - "2000000000": 30.57 + "suppliers": [ + { + "provider_name": "東京電力エナジーパートナー", + "plan_name": "従量電灯B", + "basic": { + "10": 286, + "15": 429, + "20": 572, + "30": 858, + "40": 1144, + "50": 1430, + "60": 1716 + }, + "quantity": { + "120": 19.88, + "300": 24.48, + "2000000000": 30.57 + } } - } + ] } From 1514a3aaac3023ec369fdd66c66f319278d7ddc8 Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 14 Sep 2021 01:43:53 +0900 Subject: [PATCH 04/23] =?UTF-8?q?initialize=E6=99=82=E3=81=ABJSON=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E8=AA=AD=E3=81=BF=E8=BE=BC=E3=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/simulator.rb | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/challengeA/shogo_takasaki/src/simulator.rb b/challengeA/shogo_takasaki/src/simulator.rb index 5a43a50af..837233fd1 100644 --- a/challengeA/shogo_takasaki/src/simulator.rb +++ b/challengeA/shogo_takasaki/src/simulator.rb @@ -1,19 +1,26 @@ # frozen_string_literal: true +require 'json' + # Simulator for electric usage class Simulator - attr_accessor :ampere, :usage + attr_accessor :ampere, :usage, :plans def initialize(ampere, usage) @ampere = ampere @usage = usage + File.open("plans.json") do |f| + @plans = JSON.load(f) + end end def simulate - [ - { provider_name: 'Looopでんき', plan_name: 'おうちプラン', price: '1234' }, - { provider_name: 'Looopでんき2', plan_name: 'おうちプラン4', price: '12345' }, - { provider_name: 'Looopでんき3', plan_name: 'おうちプラン5', price: '12346' } - ] + @plans['suppliers'].map do |plan| + { + provider_name: plan['provider_name'], + plan_name: plan['plan_name'], + price: plan.price(@ampere, @usage) + } + end end end From eea15ba1454408da3c83557cace42fafa3577e0e Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 14 Sep 2021 10:08:45 +0900 Subject: [PATCH 05/23] =?UTF-8?q?key=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/{src => data}/plans.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename challengeA/shogo_takasaki/{src => data}/plans.json (87%) diff --git a/challengeA/shogo_takasaki/src/plans.json b/challengeA/shogo_takasaki/data/plans.json similarity index 87% rename from challengeA/shogo_takasaki/src/plans.json rename to challengeA/shogo_takasaki/data/plans.json index da03ca640..ca80796b2 100644 --- a/challengeA/shogo_takasaki/src/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -3,7 +3,7 @@ { "provider_name": "東京電力エナジーパートナー", "plan_name": "従量電灯B", - "basic": { + "basic_price": { "10": 286, "15": 429, "20": 572, @@ -12,7 +12,7 @@ "50": 1430, "60": 1716 }, - "quantity": { + "additional_price": { "120": 19.88, "300": 24.48, "2000000000": 30.57 From 1517ac9e2b83ef388da50a64c9c8cd591a48f042 Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 14 Sep 2021 10:09:16 +0900 Subject: [PATCH 06/23] init plan class --- challengeA/shogo_takasaki/src/plan.rb | 25 ++++++++++++++++++++++ challengeA/shogo_takasaki/src/simulator.rb | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 challengeA/shogo_takasaki/src/plan.rb diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb new file mode 100644 index 000000000..fb900897e --- /dev/null +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +# display plan info +class Plan + attr_accessor :provider_name, :plan_name, :basic_price, :additional_price + + def initialize(provider_name: '', plan_name: '', basic_price: {}, additional_price: {}) + @provider_name = provider_name + @plan_name = plan_name + @basic_price = basic_price + @additional_price = additional_price + end + + def price(ampere: 0, usage: 0) + @basic_price.first.to_i + @additional_price.first.to_i + end + + def get_basic_price(ampere: 0) + 0 + end + + def get_additional_price(usage: 0) + 0 + end +end diff --git a/challengeA/shogo_takasaki/src/simulator.rb b/challengeA/shogo_takasaki/src/simulator.rb index 837233fd1..6cd3bdf36 100644 --- a/challengeA/shogo_takasaki/src/simulator.rb +++ b/challengeA/shogo_takasaki/src/simulator.rb @@ -9,7 +9,7 @@ class Simulator def initialize(ampere, usage) @ampere = ampere @usage = usage - File.open("plans.json") do |f| + File.open("../data/plans.json") do |f| @plans = JSON.load(f) end end From 369a1d66e7e3a03cb0499b6c5f314a0bc00211b8 Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 03:19:38 +0900 Subject: [PATCH 07/23] =?UTF-8?q?=E8=A8=88=E7=AE=97=E9=96=A2=E9=80=A3?= =?UTF-8?q?=E9=96=A2=E6=95=B0=E4=BB=AE=E5=AE=9F=E8=A3=85done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/data/plans.json | 47 ++++++++++++++++++++++ challengeA/shogo_takasaki/src/plan.rb | 29 +++++++++---- challengeA/shogo_takasaki/src/simulator.rb | 12 +++--- 3 files changed, 75 insertions(+), 13 deletions(-) diff --git a/challengeA/shogo_takasaki/data/plans.json b/challengeA/shogo_takasaki/data/plans.json index ca80796b2..9c47b4f49 100644 --- a/challengeA/shogo_takasaki/data/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -17,6 +17,53 @@ "300": 24.48, "2000000000": 30.57 } + }, + { + "provider_name": "Looopでんき", + "plan_name": "おうちプラン", + "basic_price": { + "10": 0, + "15": 0, + "20": 0, + "30": 0, + "40": 0, + "50": 0, + "60": 0 + }, + "additional_price": { + "2000000000": 26.40 + } + }, + { + "provider_name": "東京ガス", + "plan_name": "ずっとも電気1", + "basic_price": { + "30": 858, + "40": 1144, + "50": 1430, + "60": 1716 + }, + "additional_price": { + "140": 23.67, + "350": 23.88, + "2000000000": 26.41 + } + }, + { + "provider_name": "JXTGでんき", + "plan_name": "従量電灯B たっぷりプラン", + "basic_price": { + "30": 858, + "40": 1144, + "50": 1430, + "60": 1716.8 + }, + "additional_price": { + "120": 19.88, + "300": 26.48, + "600": 25.08, + "2000000000": 26.15 + } } ] } diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index fb900897e..b91a590f0 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -4,22 +4,37 @@ class Plan attr_accessor :provider_name, :plan_name, :basic_price, :additional_price - def initialize(provider_name: '', plan_name: '', basic_price: {}, additional_price: {}) + def initialize(provider_name, plan_name, basic_price, additional_price) @provider_name = provider_name @plan_name = plan_name @basic_price = basic_price @additional_price = additional_price end - def price(ampere: 0, usage: 0) - @basic_price.first.to_i + @additional_price.first.to_i + def price(ampere, usage) + basic_price(ampere) + additional_price(usage) end - def get_basic_price(ampere: 0) - 0 + def basic_price(ampere) + @basic_price[ampere.to_s] || '基本料金設定無し' end - def get_additional_price(usage: 0) - 0 + def additional_price(usage) + unit_price(usage) * usage + end + + def unit_price(usage) + @additional_price.each do |_price| + return _price[1] if usage <= _price[0].to_i + end + '従量料金設定無し' + end + + def display(ampere, usage) + { + provider_name: provider_name, + plan_name: plan_name, + price: price(ampere, usage) + } end end diff --git a/challengeA/shogo_takasaki/src/simulator.rb b/challengeA/shogo_takasaki/src/simulator.rb index 6cd3bdf36..754e35cff 100644 --- a/challengeA/shogo_takasaki/src/simulator.rb +++ b/challengeA/shogo_takasaki/src/simulator.rb @@ -6,6 +6,8 @@ class Simulator attr_accessor :ampere, :usage, :plans + TAX_RATE = 0.1 + def initialize(ampere, usage) @ampere = ampere @usage = usage @@ -15,12 +17,10 @@ def initialize(ampere, usage) end def simulate - @plans['suppliers'].map do |plan| - { - provider_name: plan['provider_name'], - plan_name: plan['plan_name'], - price: plan.price(@ampere, @usage) - } + @plans['suppliers'].map do |_plan| + Plan.new( + _plan['provider_name'], _plan['plan_name'], _plan['basic_price'], _plan['additional_price'] + ).display(@ampere, @usage) end end end From 6ef70c0de0f6555d7e11c1c47e33bb2bfe316c8c Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 11:38:31 +0900 Subject: [PATCH 08/23] add test for basic_price function --- challengeA/shogo_takasaki/data/plans.json | 44 ++++++++-------- challengeA/shogo_takasaki/src/plan.rb | 21 +++++--- challengeA/shogo_takasaki/src/simulator.rb | 6 +-- challengeA/shogo_takasaki/test/plan_test.rb | 57 +++++++++++++++++++++ 4 files changed, 94 insertions(+), 34 deletions(-) create mode 100644 challengeA/shogo_takasaki/test/plan_test.rb diff --git a/challengeA/shogo_takasaki/data/plans.json b/challengeA/shogo_takasaki/data/plans.json index 9c47b4f49..dc85a65e8 100644 --- a/challengeA/shogo_takasaki/data/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -4,13 +4,13 @@ "provider_name": "東京電力エナジーパートナー", "plan_name": "従量電灯B", "basic_price": { - "10": 286, - "15": 429, - "20": 572, - "30": 858, - "40": 1144, - "50": 1430, - "60": 1716 + "10": 286.00, + "15": 429.00, + "20": 572.00, + "30": 858.00, + "40": 1144.00, + "50": 1430.00, + "60": 1716.00 }, "additional_price": { "120": 19.88, @@ -22,13 +22,13 @@ "provider_name": "Looopでんき", "plan_name": "おうちプラン", "basic_price": { - "10": 0, - "15": 0, - "20": 0, - "30": 0, - "40": 0, - "50": 0, - "60": 0 + "10": 0.00, + "15": 0.00, + "20": 0.00, + "30": 0.00, + "40": 0.00, + "50": 0.00, + "60": 0.00 }, "additional_price": { "2000000000": 26.40 @@ -38,10 +38,10 @@ "provider_name": "東京ガス", "plan_name": "ずっとも電気1", "basic_price": { - "30": 858, - "40": 1144, - "50": 1430, - "60": 1716 + "30": 858.00, + "40": 1144.00, + "50": 1430.00, + "60": 1716.00 }, "additional_price": { "140": 23.67, @@ -53,10 +53,10 @@ "provider_name": "JXTGでんき", "plan_name": "従量電灯B たっぷりプラン", "basic_price": { - "30": 858, - "40": 1144, - "50": 1430, - "60": 1716.8 + "30": 858.00, + "40": 1144.00, + "50": 1430.00, + "60": 1716.80 }, "additional_price": { "120": 19.88, diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index b91a590f0..725bf1d4e 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -2,13 +2,18 @@ # display plan info class Plan - attr_accessor :provider_name, :plan_name, :basic_price, :additional_price + attr_reader :provider_name, :plan_name, :basic_price, :additional_price - def initialize(provider_name, plan_name, basic_price, additional_price) - @provider_name = provider_name - @plan_name = plan_name - @basic_price = basic_price - @additional_price = additional_price + module Message + NO_BASIC_PRICE = '基本料金設定無し' + NO_UNIT_PRICE = '従量料金設定無し' + end + + def initialize(plan) + @provider_name = plan['provider_name'] + @plan_name = plan['plan_name'] + @basic_price = plan['basic_price'] + @additional_price = plan['additional_price'] end def price(ampere, usage) @@ -16,7 +21,7 @@ def price(ampere, usage) end def basic_price(ampere) - @basic_price[ampere.to_s] || '基本料金設定無し' + @basic_price[ampere.to_s] || Message::NO_BASIC_PRICE end def additional_price(usage) @@ -27,7 +32,7 @@ def unit_price(usage) @additional_price.each do |_price| return _price[1] if usage <= _price[0].to_i end - '従量料金設定無し' + Message::NO_UNIT_PRICE end def display(ampere, usage) diff --git a/challengeA/shogo_takasaki/src/simulator.rb b/challengeA/shogo_takasaki/src/simulator.rb index 754e35cff..69bb8f034 100644 --- a/challengeA/shogo_takasaki/src/simulator.rb +++ b/challengeA/shogo_takasaki/src/simulator.rb @@ -4,7 +4,7 @@ # Simulator for electric usage class Simulator - attr_accessor :ampere, :usage, :plans + attr_reader :ampere, :usage, :plans TAX_RATE = 0.1 @@ -18,9 +18,7 @@ def initialize(ampere, usage) def simulate @plans['suppliers'].map do |_plan| - Plan.new( - _plan['provider_name'], _plan['plan_name'], _plan['basic_price'], _plan['additional_price'] - ).display(@ampere, @usage) + Plan.new(_plan).display(@ampere, @usage) end end end diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb new file mode 100644 index 000000000..80efe0825 --- /dev/null +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require 'minitest/autorun' +require '../src/plan' +require 'json' + +# display plan info test +class PlanTest < Minitest::Test + def setup + File.open("../data/plans.json") do |f| + @plans = JSON.load(f) + end + @tokyo_energy = Plan.new(@plans['suppliers'][0]) + @looop = Plan.new(@plans['suppliers'][1]) + @tokyo_gas = Plan.new(@plans['suppliers'][2]) + @jxtg = Plan.new(@plans['suppliers'][3]) + end + + def test_tokyo_energy_basic_price + assert_equal 286, @tokyo_energy.basic_price(10) + assert_equal 429, @tokyo_energy.basic_price(15) + assert_equal 572, @tokyo_energy.basic_price(20) + assert_equal Plan::Message::NO_BASIC_PRICE, @tokyo_energy.basic_price(25) + assert_equal 858, @tokyo_energy.basic_price(30) + assert_equal 1144, @tokyo_energy.basic_price(40) + assert_equal 1430, @tokyo_energy.basic_price(50) + assert_equal 1716, @tokyo_energy.basic_price(60) + assert_equal Plan::Message::NO_BASIC_PRICE, @tokyo_energy.basic_price(61) + end + + def test_loops_basic_price + assert_equal 0, @looop.basic_price(10) + assert_equal 0, @looop.basic_price(20) + assert_equal 0, @looop.basic_price(30) + assert_equal 0, @looop.basic_price(40) + assert_equal 0, @looop.basic_price(50) + assert_equal 0, @looop.basic_price(60) + assert_equal Plan::Message::NO_BASIC_PRICE, @looop.basic_price(61) + end + + def test_tokyo_gas_basic_price + assert_equal 858, @tokyo_gas.basic_price(30) + assert_equal 1144, @tokyo_gas.basic_price(40) + assert_equal 1430, @tokyo_gas.basic_price(50) + assert_equal 1716, @tokyo_gas.basic_price(60) + assert_equal Plan::Message::NO_BASIC_PRICE, @tokyo_gas.basic_price(20) + end + + def test_jxtg_basic_price + assert_equal 858, @jxtg.basic_price(30) + assert_equal 1144, @jxtg.basic_price(40) + assert_equal 1430, @jxtg.basic_price(50) + assert_equal 1716.80, @jxtg.basic_price(60) + assert_equal Plan::Message::NO_BASIC_PRICE, @jxtg.basic_price(20) + end + +end From bb4fbdd74530810cf3c2522b762e0b8ce6bcf84f Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 13:55:39 +0900 Subject: [PATCH 09/23] fix test data --- challengeA/shogo_takasaki/data/plans.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challengeA/shogo_takasaki/data/plans.json b/challengeA/shogo_takasaki/data/plans.json index dc85a65e8..f87bbafdb 100644 --- a/challengeA/shogo_takasaki/data/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -14,7 +14,7 @@ }, "additional_price": { "120": 19.88, - "300": 24.48, + "300": 26.48, "2000000000": 30.57 } }, From e5761ee39a2fc055919660a706852687a14687a5 Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 13:57:34 +0900 Subject: [PATCH 10/23] =?UTF-8?q?=E6=83=B3=E5=AE=9A=E7=AF=84=E5=9B=B2?= =?UTF-8?q?=E5=A4=96=E3=81=AEampere=E3=81=AF=E8=A8=88=E7=AE=97=E4=B8=8D?= =?UTF-8?q?=E8=A6=81=E3=81=AE=E3=81=9F=E3=82=81=E3=80=81=E4=BE=8B=E5=A4=96?= =?UTF-8?q?=E3=81=A8=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/plan.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 725bf1d4e..7f4cc3b62 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -16,23 +16,23 @@ def initialize(plan) @additional_price = plan['additional_price'] end - def price(ampere, usage) - basic_price(ampere) + additional_price(usage) + def basic_price(ampere) + @basic_price[ampere.to_s] or raise Message::NO_BASIC_PRICE end - def basic_price(ampere) - @basic_price[ampere.to_s] || Message::NO_BASIC_PRICE + def unit_price(usage) + @additional_price.each do |_price| + return _price[1] if usage <= _price[0].to_i + end + raise Message::NO_UNIT_PRICE end def additional_price(usage) unit_price(usage) * usage end - def unit_price(usage) - @additional_price.each do |_price| - return _price[1] if usage <= _price[0].to_i - end - Message::NO_UNIT_PRICE + def price(ampere, usage) + basic_price(ampere) + additional_price(usage) end def display(ampere, usage) From 2397a1922953eec6cd3365e1ed882a36f099b384 Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 13:57:55 +0900 Subject: [PATCH 11/23] add test for price function --- challengeA/shogo_takasaki/test/plan_test.rb | 88 +++++++++++++++++++-- 1 file changed, 83 insertions(+), 5 deletions(-) diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb index 80efe0825..062ec9770 100644 --- a/challengeA/shogo_takasaki/test/plan_test.rb +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -20,12 +20,12 @@ def test_tokyo_energy_basic_price assert_equal 286, @tokyo_energy.basic_price(10) assert_equal 429, @tokyo_energy.basic_price(15) assert_equal 572, @tokyo_energy.basic_price(20) - assert_equal Plan::Message::NO_BASIC_PRICE, @tokyo_energy.basic_price(25) assert_equal 858, @tokyo_energy.basic_price(30) assert_equal 1144, @tokyo_energy.basic_price(40) assert_equal 1430, @tokyo_energy.basic_price(50) assert_equal 1716, @tokyo_energy.basic_price(60) - assert_equal Plan::Message::NO_BASIC_PRICE, @tokyo_energy.basic_price(61) + e = assert_raises RuntimeError do @tokyo_energy.basic_price(61) end + assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_loops_basic_price @@ -35,7 +35,8 @@ def test_loops_basic_price assert_equal 0, @looop.basic_price(40) assert_equal 0, @looop.basic_price(50) assert_equal 0, @looop.basic_price(60) - assert_equal Plan::Message::NO_BASIC_PRICE, @looop.basic_price(61) + e = assert_raises RuntimeError do @looop.basic_price(61) end + assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_tokyo_gas_basic_price @@ -43,7 +44,8 @@ def test_tokyo_gas_basic_price assert_equal 1144, @tokyo_gas.basic_price(40) assert_equal 1430, @tokyo_gas.basic_price(50) assert_equal 1716, @tokyo_gas.basic_price(60) - assert_equal Plan::Message::NO_BASIC_PRICE, @tokyo_gas.basic_price(20) + e = assert_raises RuntimeError do @tokyo_gas.basic_price(20) end + assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_jxtg_basic_price @@ -51,7 +53,83 @@ def test_jxtg_basic_price assert_equal 1144, @jxtg.basic_price(40) assert_equal 1430, @jxtg.basic_price(50) assert_equal 1716.80, @jxtg.basic_price(60) - assert_equal Plan::Message::NO_BASIC_PRICE, @jxtg.basic_price(20) + e = assert_raises RuntimeError do @jxtg.basic_price(20) end + assert_equal Plan::Message::NO_BASIC_PRICE, e.message end + def test_tokyo_energy_unit_price + assert_equal 19.88, @tokyo_energy.unit_price(0) + assert_equal 19.88, @tokyo_energy.unit_price(119) + assert_equal 19.88, @tokyo_energy.unit_price(120) + assert_equal 26.48, @tokyo_energy.unit_price(121) + assert_equal 26.48, @tokyo_energy.unit_price(300) + assert_equal 30.57, @tokyo_energy.unit_price(301) + assert_equal 30.57, @tokyo_energy.unit_price(400) + end + + def test_loops_unit_price + assert_equal 26.40, @looop.unit_price(0) + assert_equal 26.40, @looop.unit_price(119) + assert_equal 26.40, @looop.unit_price(120) + assert_equal 26.40, @looop.unit_price(121) + assert_equal 26.40, @looop.unit_price(300) + assert_equal 26.40, @looop.unit_price(301) + assert_equal 26.40, @looop.unit_price(400) + end + + def test_tokyo_gas_unit_price + assert_equal 23.67, @tokyo_gas.unit_price(0) + assert_equal 23.67, @tokyo_gas.unit_price(139) + assert_equal 23.67, @tokyo_gas.unit_price(140) + assert_equal 23.88, @tokyo_gas.unit_price(141) + assert_equal 23.88, @tokyo_gas.unit_price(349) + assert_equal 23.88, @tokyo_gas.unit_price(350) + assert_equal 26.41, @tokyo_gas.unit_price(351) + end + + def test_jxtg_unit_price + assert_equal 19.88, @jxtg.unit_price(0) + assert_equal 19.88, @jxtg.unit_price(120) + assert_equal 26.48, @jxtg.unit_price(121) + assert_equal 26.48, @jxtg.unit_price(300) + assert_equal 25.08, @jxtg.unit_price(301) + assert_equal 25.08, @jxtg.unit_price(600) + assert_equal 26.15, @jxtg.unit_price(601) + end + + def test_additional_price + assert_equal 0, @tokyo_energy.additional_price(0) + assert_equal 19.88 * 119, @tokyo_energy.additional_price(119) + assert_equal 19.88 * 120, @tokyo_energy.additional_price(120) + assert_equal 26.48 * 121, @tokyo_energy.additional_price(121) + assert_equal 26.48 * 300, @tokyo_energy.additional_price(300) + assert_equal 30.57 * 301, @tokyo_energy.additional_price(301) + assert_equal 30.57 * 400, @tokyo_energy.additional_price(400) + + assert_equal 19.88 * 0, @jxtg.additional_price(0) + assert_equal 19.88 * 120, @jxtg.additional_price(120) + assert_equal 26.48 * 121, @jxtg.additional_price(121) + assert_equal 26.48 * 300, @jxtg.additional_price(300) + assert_equal 25.08 * 301, @jxtg.additional_price(301) + assert_equal 25.08 * 600, @jxtg.additional_price(600) + assert_equal 26.15 * 601, @jxtg.additional_price(601) + end + + def test_price + assert_equal 0 + 286.00, @tokyo_energy.price(10, 0) + assert_equal 429 + 19.88 * 119, @tokyo_energy.price(15, 119) + assert_equal 572 + 19.88 * 120, @tokyo_energy.price(20, 120) + assert_equal 858 + 26.48 * 121, @tokyo_energy.price(30, 121) + assert_equal 1144 + 26.48 * 300, @tokyo_energy.price(40, 300) + assert_equal 1430 + 30.57 * 301, @tokyo_energy.price(50, 301) + assert_equal 1716 + 30.57 * 400, @tokyo_energy.price(60, 400) + + assert_equal 858 + 19.88 * 0, @jxtg.price(30, 0) + assert_equal 858 + 19.88 * 120, @jxtg.price(30, 120) + assert_equal 1144 + 26.48 * 121, @jxtg.price(40, 121) + assert_equal 1144 + 26.48 * 300, @jxtg.price(40, 300) + assert_equal 1430 + 25.08 * 301, @jxtg.price(50, 301) + assert_equal 1716.80 + 25.08 * 600, @jxtg.price(60, 600) + assert_equal 1716.80 + 26.15 * 601, @jxtg.price(60, 601) + end end From a5f8813f187d71a355fd07f13f71e009561d0a53 Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 15:05:50 +0900 Subject: [PATCH 12/23] fix instance var --- challengeA/shogo_takasaki/src/plan.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 7f4cc3b62..f3b5d01b5 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -2,7 +2,7 @@ # display plan info class Plan - attr_reader :provider_name, :plan_name, :basic_price, :additional_price + attr_reader :provider_name, :plan_name, :basic_price_list, :additional_price_list module Message NO_BASIC_PRICE = '基本料金設定無し' @@ -12,16 +12,16 @@ module Message def initialize(plan) @provider_name = plan['provider_name'] @plan_name = plan['plan_name'] - @basic_price = plan['basic_price'] - @additional_price = plan['additional_price'] + @basic_price_list = plan['basic_price'] + @additional_price_list = plan['additional_price'] end def basic_price(ampere) - @basic_price[ampere.to_s] or raise Message::NO_BASIC_PRICE + @basic_price_list[ampere.to_s] or raise Message::NO_BASIC_PRICE end def unit_price(usage) - @additional_price.each do |_price| + @additional_price_list.each do |_price| return _price[1] if usage <= _price[0].to_i end raise Message::NO_UNIT_PRICE @@ -35,11 +35,15 @@ def price(ampere, usage) basic_price(ampere) + additional_price(usage) end + def price_with_tax(ampere, usage) + price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE) + end + def display(ampere, usage) { provider_name: provider_name, plan_name: plan_name, - price: price(ampere, usage) + price: price_with_tax(ampere, usage) } end end From b86056b0245fef2b9ad8440766803c9225bf870d Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 15:06:23 +0900 Subject: [PATCH 13/23] add test for display function --- challengeA/shogo_takasaki/src/simulator.rb | 6 +- challengeA/shogo_takasaki/test/plan_test.rb | 96 ++++++++++++++------- 2 files changed, 69 insertions(+), 33 deletions(-) diff --git a/challengeA/shogo_takasaki/src/simulator.rb b/challengeA/shogo_takasaki/src/simulator.rb index 69bb8f034..b6ca0a437 100644 --- a/challengeA/shogo_takasaki/src/simulator.rb +++ b/challengeA/shogo_takasaki/src/simulator.rb @@ -11,14 +11,14 @@ class Simulator def initialize(ampere, usage) @ampere = ampere @usage = usage - File.open("../data/plans.json") do |f| + File.open('../data/plans.json') do |f| @plans = JSON.load(f) end end def simulate - @plans['suppliers'].map do |_plan| - Plan.new(_plan).display(@ampere, @usage) + @plans['suppliers'].map do |plan| + Plan.new(plan).display(@ampere, @usage) end end end diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb index 062ec9770..818765f95 100644 --- a/challengeA/shogo_takasaki/test/plan_test.rb +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -2,6 +2,7 @@ require 'minitest/autorun' require '../src/plan' +require '../src/simulator' require 'json' # display plan info test @@ -98,38 +99,73 @@ def test_jxtg_unit_price end def test_additional_price - assert_equal 0, @tokyo_energy.additional_price(0) - assert_equal 19.88 * 119, @tokyo_energy.additional_price(119) - assert_equal 19.88 * 120, @tokyo_energy.additional_price(120) - assert_equal 26.48 * 121, @tokyo_energy.additional_price(121) - assert_equal 26.48 * 300, @tokyo_energy.additional_price(300) - assert_equal 30.57 * 301, @tokyo_energy.additional_price(301) - assert_equal 30.57 * 400, @tokyo_energy.additional_price(400) - - assert_equal 19.88 * 0, @jxtg.additional_price(0) - assert_equal 19.88 * 120, @jxtg.additional_price(120) - assert_equal 26.48 * 121, @jxtg.additional_price(121) - assert_equal 26.48 * 300, @jxtg.additional_price(300) - assert_equal 25.08 * 301, @jxtg.additional_price(301) - assert_equal 25.08 * 600, @jxtg.additional_price(600) - assert_equal 26.15 * 601, @jxtg.additional_price(601) + assert_equal @tokyo_energy.unit_price(0) * 0, @tokyo_energy.additional_price(0) + assert_equal @tokyo_energy.unit_price(119) * 119, @tokyo_energy.additional_price(119) + assert_equal @tokyo_energy.unit_price(120) * 120, @tokyo_energy.additional_price(120) + assert_equal @tokyo_energy.unit_price(121) * 121, @tokyo_energy.additional_price(121) + assert_equal @tokyo_energy.unit_price(300) * 300, @tokyo_energy.additional_price(300) + assert_equal @tokyo_energy.unit_price(301) * 301, @tokyo_energy.additional_price(301) + assert_equal @tokyo_energy.unit_price(400) * 400, @tokyo_energy.additional_price(400) + + assert_equal @jxtg.unit_price(0) * 0, @jxtg.additional_price(0) + assert_equal @jxtg.unit_price(120) * 120, @jxtg.additional_price(120) + assert_equal @jxtg.unit_price(121) * 121, @jxtg.additional_price(121) + assert_equal @jxtg.unit_price(300) * 300, @jxtg.additional_price(300) + assert_equal @jxtg.unit_price(301) * 301, @jxtg.additional_price(301) + assert_equal @jxtg.unit_price(600) * 600, @jxtg.additional_price(600) + assert_equal @jxtg.unit_price(601) * 601, @jxtg.additional_price(601) end def test_price - assert_equal 0 + 286.00, @tokyo_energy.price(10, 0) - assert_equal 429 + 19.88 * 119, @tokyo_energy.price(15, 119) - assert_equal 572 + 19.88 * 120, @tokyo_energy.price(20, 120) - assert_equal 858 + 26.48 * 121, @tokyo_energy.price(30, 121) - assert_equal 1144 + 26.48 * 300, @tokyo_energy.price(40, 300) - assert_equal 1430 + 30.57 * 301, @tokyo_energy.price(50, 301) - assert_equal 1716 + 30.57 * 400, @tokyo_energy.price(60, 400) - - assert_equal 858 + 19.88 * 0, @jxtg.price(30, 0) - assert_equal 858 + 19.88 * 120, @jxtg.price(30, 120) - assert_equal 1144 + 26.48 * 121, @jxtg.price(40, 121) - assert_equal 1144 + 26.48 * 300, @jxtg.price(40, 300) - assert_equal 1430 + 25.08 * 301, @jxtg.price(50, 301) - assert_equal 1716.80 + 25.08 * 600, @jxtg.price(60, 600) - assert_equal 1716.80 + 26.15 * 601, @jxtg.price(60, 601) + assert_equal @tokyo_energy.basic_price(10) + @tokyo_energy.additional_price(0), @tokyo_energy.price(10, 0) + assert_equal @tokyo_energy.basic_price(15) + @tokyo_energy.additional_price(119), @tokyo_energy.price(15, 119) + assert_equal @tokyo_energy.basic_price(20) + @tokyo_energy.additional_price(120), @tokyo_energy.price(20, 120) + assert_equal @tokyo_energy.basic_price(30) + @tokyo_energy.additional_price(121), @tokyo_energy.price(30, 121) + assert_equal @tokyo_energy.basic_price(40) + @tokyo_energy.additional_price(300), @tokyo_energy.price(40, 300) + assert_equal @tokyo_energy.basic_price(50) + @tokyo_energy.additional_price(301), @tokyo_energy.price(50, 301) + assert_equal @tokyo_energy.basic_price(60) + @tokyo_energy.additional_price(400), @tokyo_energy.price(60, 400) + + assert_equal @jxtg.basic_price(30) + @jxtg.additional_price(0), @jxtg.price(30, 0) + assert_equal @jxtg.basic_price(30) + @jxtg.additional_price(120), @jxtg.price(30, 120) + assert_equal @jxtg.basic_price(40) + @jxtg.additional_price(121), @jxtg.price(40, 121) + assert_equal @jxtg.basic_price(40) + @jxtg.additional_price(300), @jxtg.price(40, 300) + assert_equal @jxtg.basic_price(50) + @jxtg.additional_price(301), @jxtg.price(50, 301) + assert_equal @jxtg.basic_price(60) + @jxtg.additional_price(600), @jxtg.price(60, 600) + assert_equal @jxtg.basic_price(60) + @jxtg.additional_price(601), @jxtg.price(60, 601) + end + + def test_price_with_tax + assert_equal @tokyo_energy.price(60, 400) + (@tokyo_energy.price(60, 400) * Simulator::TAX_RATE), @tokyo_energy.price_with_tax(60, 400) + assert_equal @jxtg.price(30, 0) + (@jxtg.price(30, 0) * Simulator::TAX_RATE), @jxtg.price_with_tax(30, 0) + end + + def test_display + result_tokyo_energy = { + provider_name: '東京電力エナジーパートナー', + plan_name: '従量電灯B', + price: @tokyo_energy.price_with_tax(60, 400) + } + assert_equal result_tokyo_energy, @tokyo_energy.display(60, 400) + + result_looops = { + provider_name: 'Looopでんき', + plan_name: 'おうちプラン', + price: @looop.price_with_tax(60, 400) + } + assert_equal result_looops, @looop.display(60, 400) + + result_tokyo_gas = { + provider_name: '東京ガス', + plan_name: 'ずっとも電気1', + price: @tokyo_gas.price_with_tax(60, 400) + } + assert_equal result_tokyo_gas, @tokyo_gas.display(60, 400) + + result_jxtg = { + provider_name: 'JXTGでんき', + plan_name: '従量電灯B たっぷりプラン', + price: @jxtg.price_with_tax(60, 400) + } + assert_equal result_jxtg, @jxtg.display(60, 400) end end From c9496407295d07684ca21ddb29a0c73607d2b330 Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 15:15:45 +0900 Subject: [PATCH 14/23] init simulator test --- .../shogo_takasaki/test/simulator_test.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 challengeA/shogo_takasaki/test/simulator_test.rb diff --git a/challengeA/shogo_takasaki/test/simulator_test.rb b/challengeA/shogo_takasaki/test/simulator_test.rb new file mode 100644 index 000000000..ace3e0cf9 --- /dev/null +++ b/challengeA/shogo_takasaki/test/simulator_test.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require 'minitest/autorun' +require '../src/plan' +require '../src/simulator' +require 'json' + +# Simulator for electric usage test +class SimulatorTest < Minitest::Test + + def setup + @simulator = Simulator.new(60, 400) + end + + def test_simulate + assert_equal [], @simulator.simulate + end +end From beb1f4e6d05aacc0d759ad73ecd1a7075ca7be2b Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 21:05:00 +0900 Subject: [PATCH 15/23] add simulator test --- challengeA/shogo_takasaki/src/plan.rb | 3 ++- .../shogo_takasaki/test/simulator_test.rb | 24 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index f3b5d01b5..82a275907 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -36,7 +36,8 @@ def price(ampere, usage) end def price_with_tax(ampere, usage) - price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE) + # 有効桁数は単価表に合わせ、小数点以下2桁とする + price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE).round(2) end def display(ampere, usage) diff --git a/challengeA/shogo_takasaki/test/simulator_test.rb b/challengeA/shogo_takasaki/test/simulator_test.rb index ace3e0cf9..65dac38de 100644 --- a/challengeA/shogo_takasaki/test/simulator_test.rb +++ b/challengeA/shogo_takasaki/test/simulator_test.rb @@ -13,6 +13,28 @@ def setup end def test_simulate - assert_equal [], @simulator.simulate + result = [ + { + provider_name: "東京電力エナジーパートナー", + plan_name: "従量電灯B", + price: 15338.4 + }, + { + provider_name: "Looopでんき", + plan_name: "おうちプラン", price: 11616.0 + }, + { + provider_name: "東京ガス", + plan_name: "ずっとも電気1", + price: 13508.0 + }, + { + provider_name: "JXTGでんき", + plan_name: "従量電灯B たっぷりプラン", + :price=>12923.68 + } + ] + assert_equal result, @simulator.simulate end + end From 19004f5fc04dcf4c68851d4005038de2ebc1f939 Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 21:29:45 +0900 Subject: [PATCH 16/23] fix --- challengeA/shogo_takasaki/test/simulator_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challengeA/shogo_takasaki/test/simulator_test.rb b/challengeA/shogo_takasaki/test/simulator_test.rb index 65dac38de..65c6f89c7 100644 --- a/challengeA/shogo_takasaki/test/simulator_test.rb +++ b/challengeA/shogo_takasaki/test/simulator_test.rb @@ -31,7 +31,7 @@ def test_simulate { provider_name: "JXTGでんき", plan_name: "従量電灯B たっぷりプラン", - :price=>12923.68 + price: 12923.68 } ] assert_equal result, @simulator.simulate From 2394881b54990aaaf3284606e33bd4ce027c2fec Mon Sep 17 00:00:00 2001 From: tksk Date: Sat, 18 Sep 2021 22:05:57 +0900 Subject: [PATCH 17/23] =?UTF-8?q?=E9=9B=BB=E6=B0=97=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=87=8F0=E3=81=AE=E5=A0=B4=E5=90=88=E3=81=AF=E3=80=81?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=96=99=E9=87=91=E5=8D=8A=E9=A1=8D=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/plan.rb | 6 +- challengeA/shogo_takasaki/test/plan_test.rb | 83 +++++++++++---------- 2 files changed, 47 insertions(+), 42 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 82a275907..02b776a52 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -16,7 +16,9 @@ def initialize(plan) @additional_price_list = plan['additional_price'] end - def basic_price(ampere) + def basic_price(ampere, usage) + return @basic_price_list[ampere.to_s] / 2 if usage.zero? + @basic_price_list[ampere.to_s] or raise Message::NO_BASIC_PRICE end @@ -32,7 +34,7 @@ def additional_price(usage) end def price(ampere, usage) - basic_price(ampere) + additional_price(usage) + basic_price(ampere, usage) + additional_price(usage) end def price_with_tax(ampere, usage) diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb index 818765f95..5d3d44040 100644 --- a/challengeA/shogo_takasaki/test/plan_test.rb +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -18,43 +18,46 @@ def setup end def test_tokyo_energy_basic_price - assert_equal 286, @tokyo_energy.basic_price(10) - assert_equal 429, @tokyo_energy.basic_price(15) - assert_equal 572, @tokyo_energy.basic_price(20) - assert_equal 858, @tokyo_energy.basic_price(30) - assert_equal 1144, @tokyo_energy.basic_price(40) - assert_equal 1430, @tokyo_energy.basic_price(50) - assert_equal 1716, @tokyo_energy.basic_price(60) - e = assert_raises RuntimeError do @tokyo_energy.basic_price(61) end + assert_equal 143, @tokyo_energy.basic_price(10, 0) + assert_equal 286, @tokyo_energy.basic_price(10, 100) + assert_equal 429, @tokyo_energy.basic_price(15, 100) + assert_equal 572, @tokyo_energy.basic_price(20, 100) + assert_equal 858, @tokyo_energy.basic_price(30, 100) + assert_equal 1144, @tokyo_energy.basic_price(40, 100) + assert_equal 1430, @tokyo_energy.basic_price(50, 100) + assert_equal 1716, @tokyo_energy.basic_price(60, 100) + e = assert_raises RuntimeError do @tokyo_energy.basic_price(61, 100) end assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_loops_basic_price - assert_equal 0, @looop.basic_price(10) - assert_equal 0, @looop.basic_price(20) - assert_equal 0, @looop.basic_price(30) - assert_equal 0, @looop.basic_price(40) - assert_equal 0, @looop.basic_price(50) - assert_equal 0, @looop.basic_price(60) - e = assert_raises RuntimeError do @looop.basic_price(61) end + assert_equal 0, @looop.basic_price(10, 100) + assert_equal 0, @looop.basic_price(20, 100) + assert_equal 0, @looop.basic_price(30, 100) + assert_equal 0, @looop.basic_price(40, 100) + assert_equal 0, @looop.basic_price(50, 100) + assert_equal 0, @looop.basic_price(60, 100) + e = assert_raises RuntimeError do @looop.basic_price(61, 100) end assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_tokyo_gas_basic_price - assert_equal 858, @tokyo_gas.basic_price(30) - assert_equal 1144, @tokyo_gas.basic_price(40) - assert_equal 1430, @tokyo_gas.basic_price(50) - assert_equal 1716, @tokyo_gas.basic_price(60) - e = assert_raises RuntimeError do @tokyo_gas.basic_price(20) end + assert_equal 429, @tokyo_gas.basic_price(30, 0) + assert_equal 858, @tokyo_gas.basic_price(30, 100) + assert_equal 1144, @tokyo_gas.basic_price(40, 100) + assert_equal 1430, @tokyo_gas.basic_price(50, 100) + assert_equal 1716, @tokyo_gas.basic_price(60, 100) + e = assert_raises RuntimeError do @tokyo_gas.basic_price(20, 100) end assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_jxtg_basic_price - assert_equal 858, @jxtg.basic_price(30) - assert_equal 1144, @jxtg.basic_price(40) - assert_equal 1430, @jxtg.basic_price(50) - assert_equal 1716.80, @jxtg.basic_price(60) - e = assert_raises RuntimeError do @jxtg.basic_price(20) end + assert_equal 429, @jxtg.basic_price(30, 0) + assert_equal 858, @jxtg.basic_price(30, 100) + assert_equal 1144, @jxtg.basic_price(40, 100) + assert_equal 1430, @jxtg.basic_price(50, 100) + assert_equal 1716.80, @jxtg.basic_price(60, 100) + e = assert_raises RuntimeError do @jxtg.basic_price(20, 100) end assert_equal Plan::Message::NO_BASIC_PRICE, e.message end @@ -117,21 +120,21 @@ def test_additional_price end def test_price - assert_equal @tokyo_energy.basic_price(10) + @tokyo_energy.additional_price(0), @tokyo_energy.price(10, 0) - assert_equal @tokyo_energy.basic_price(15) + @tokyo_energy.additional_price(119), @tokyo_energy.price(15, 119) - assert_equal @tokyo_energy.basic_price(20) + @tokyo_energy.additional_price(120), @tokyo_energy.price(20, 120) - assert_equal @tokyo_energy.basic_price(30) + @tokyo_energy.additional_price(121), @tokyo_energy.price(30, 121) - assert_equal @tokyo_energy.basic_price(40) + @tokyo_energy.additional_price(300), @tokyo_energy.price(40, 300) - assert_equal @tokyo_energy.basic_price(50) + @tokyo_energy.additional_price(301), @tokyo_energy.price(50, 301) - assert_equal @tokyo_energy.basic_price(60) + @tokyo_energy.additional_price(400), @tokyo_energy.price(60, 400) - - assert_equal @jxtg.basic_price(30) + @jxtg.additional_price(0), @jxtg.price(30, 0) - assert_equal @jxtg.basic_price(30) + @jxtg.additional_price(120), @jxtg.price(30, 120) - assert_equal @jxtg.basic_price(40) + @jxtg.additional_price(121), @jxtg.price(40, 121) - assert_equal @jxtg.basic_price(40) + @jxtg.additional_price(300), @jxtg.price(40, 300) - assert_equal @jxtg.basic_price(50) + @jxtg.additional_price(301), @jxtg.price(50, 301) - assert_equal @jxtg.basic_price(60) + @jxtg.additional_price(600), @jxtg.price(60, 600) - assert_equal @jxtg.basic_price(60) + @jxtg.additional_price(601), @jxtg.price(60, 601) + assert_equal @tokyo_energy.basic_price(10, 0) + @tokyo_energy.additional_price(0), @tokyo_energy.price(10, 0) + assert_equal @tokyo_energy.basic_price(15, 119) + @tokyo_energy.additional_price(119), @tokyo_energy.price(15, 119) + assert_equal @tokyo_energy.basic_price(20, 120) + @tokyo_energy.additional_price(120), @tokyo_energy.price(20, 120) + assert_equal @tokyo_energy.basic_price(30, 121) + @tokyo_energy.additional_price(121), @tokyo_energy.price(30, 121) + assert_equal @tokyo_energy.basic_price(40, 300) + @tokyo_energy.additional_price(300), @tokyo_energy.price(40, 300) + assert_equal @tokyo_energy.basic_price(50, 301) + @tokyo_energy.additional_price(301), @tokyo_energy.price(50, 301) + assert_equal @tokyo_energy.basic_price(60, 400) + @tokyo_energy.additional_price(400), @tokyo_energy.price(60, 400) + + assert_equal @jxtg.basic_price(30, 0) + @jxtg.additional_price(0), @jxtg.price(30, 0) + assert_equal @jxtg.basic_price(30, 120) + @jxtg.additional_price(120), @jxtg.price(30, 120) + assert_equal @jxtg.basic_price(40, 121) + @jxtg.additional_price(121), @jxtg.price(40, 121) + assert_equal @jxtg.basic_price(40, 300) + @jxtg.additional_price(300), @jxtg.price(40, 300) + assert_equal @jxtg.basic_price(50, 301) + @jxtg.additional_price(301), @jxtg.price(50, 301) + assert_equal @jxtg.basic_price(60, 600) + @jxtg.additional_price(600), @jxtg.price(60, 600) + assert_equal @jxtg.basic_price(60, 601) + @jxtg.additional_price(601), @jxtg.price(60, 601) end def test_price_with_tax From 4fa93f0a62d46d4b9a2a5d787d853ea63bdb28d8 Mon Sep 17 00:00:00 2001 From: tksk Date: Fri, 24 Sep 2021 00:51:53 +0900 Subject: [PATCH 18/23] =?UTF-8?q?[=E6=8C=87=E6=91=98=E4=BA=8B=E9=A0=85?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C]=E9=9B=BB=E6=B0=97=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=87=8F0=E3=81=8B=E3=81=A4=E3=80=81=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E6=96=99=E9=87=91=E3=81=8C=E5=AD=98=E5=9C=A8=E3=81=97=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=82=B1=E3=83=BC=E3=82=B9=E3=81=AE=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/plan.rb | 3 ++- challengeA/shogo_takasaki/test/plan_test.rb | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 02b776a52..161cf9062 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -17,9 +17,10 @@ def initialize(plan) end def basic_price(ampere, usage) + raise Message::NO_BASIC_PRICE if @basic_price_list[ampere.to_s].nil? return @basic_price_list[ampere.to_s] / 2 if usage.zero? - @basic_price_list[ampere.to_s] or raise Message::NO_BASIC_PRICE + @basic_price_list[ampere.to_s] end def unit_price(usage) diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb index 5d3d44040..51e494491 100644 --- a/challengeA/shogo_takasaki/test/plan_test.rb +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -28,6 +28,8 @@ def test_tokyo_energy_basic_price assert_equal 1716, @tokyo_energy.basic_price(60, 100) e = assert_raises RuntimeError do @tokyo_energy.basic_price(61, 100) end assert_equal Plan::Message::NO_BASIC_PRICE, e.message + e = assert_raises RuntimeError do @tokyo_energy.basic_price(61, 0) end + assert_equal Plan::Message::NO_BASIC_PRICE, e.message end def test_loops_basic_price From 7752a371804035f6a9df287beadcdc4c08ca87ad Mon Sep 17 00:00:00 2001 From: tksk Date: Fri, 24 Sep 2021 01:01:11 +0900 Subject: [PATCH 19/23] =?UTF-8?q?[=E6=8C=87=E6=91=98=E4=BA=8B=E9=A0=85?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C]=E6=9C=80=E7=B5=82=E7=9A=84=E3=81=AA?= =?UTF-8?q?=E9=9B=BB=E6=B0=97=E6=96=99=E9=87=91=E3=81=AF=E6=95=B4=E6=95=B0?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E3=81=AB=E3=81=99=E3=82=8B=EF=BC=88=E4=B8=80?= =?UTF-8?q?=E5=BE=8B=E5=88=87=E3=82=8A=E6=8D=A8=E3=81=A6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/plan.rb | 3 +-- challengeA/shogo_takasaki/test/plan_test.rb | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 161cf9062..4d5e62877 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -39,8 +39,7 @@ def price(ampere, usage) end def price_with_tax(ampere, usage) - # 有効桁数は単価表に合わせ、小数点以下2桁とする - price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE).round(2) + price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE).to_i end def display(ampere, usage) diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb index 51e494491..b661ad02c 100644 --- a/challengeA/shogo_takasaki/test/plan_test.rb +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -140,8 +140,8 @@ def test_price end def test_price_with_tax - assert_equal @tokyo_energy.price(60, 400) + (@tokyo_energy.price(60, 400) * Simulator::TAX_RATE), @tokyo_energy.price_with_tax(60, 400) - assert_equal @jxtg.price(30, 0) + (@jxtg.price(30, 0) * Simulator::TAX_RATE), @jxtg.price_with_tax(30, 0) + assert_equal (@tokyo_energy.price(60, 400) + (@tokyo_energy.price(60, 400) * Simulator::TAX_RATE)).to_i, @tokyo_energy.price_with_tax(60, 400) + assert_equal (@jxtg.price(30, 0) + (@jxtg.price(30, 0) * Simulator::TAX_RATE)).to_i, @jxtg.price_with_tax(30, 0) end def test_display From 615ffa3d38089a64ecc420ac3c10928a9e5a4427 Mon Sep 17 00:00:00 2001 From: tksk Date: Fri, 24 Sep 2021 01:34:14 +0900 Subject: [PATCH 20/23] =?UTF-8?q?[=E6=8C=87=E6=91=98=E4=BA=8B=E9=A0=85?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C]=E4=BD=BF=E7=94=A8=E9=87=8F=E8=A8=88?= =?UTF-8?q?=E7=AE=97=E3=81=AE=E4=B8=8B=E9=99=90=E5=80=A4=E3=82=92key?= =?UTF-8?q?=E3=81=AB=E8=A8=AD=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/data/plans.json | 22 +++++++++---------- challengeA/shogo_takasaki/src/plan.rb | 6 ++--- .../shogo_takasaki/test/simulator_test.rb | 8 +++---- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/challengeA/shogo_takasaki/data/plans.json b/challengeA/shogo_takasaki/data/plans.json index f87bbafdb..e0690dfaa 100644 --- a/challengeA/shogo_takasaki/data/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -13,9 +13,9 @@ "60": 1716.00 }, "additional_price": { - "120": 19.88, - "300": 26.48, - "2000000000": 30.57 + "0": 19.88, + "301": 30.57, + "121": 26.48 } }, { @@ -31,7 +31,7 @@ "60": 0.00 }, "additional_price": { - "2000000000": 26.40 + "0": 26.40 } }, { @@ -44,9 +44,9 @@ "60": 1716.00 }, "additional_price": { - "140": 23.67, - "350": 23.88, - "2000000000": 26.41 + "0": 23.67, + "141": 23.88, + "351": 26.41 } }, { @@ -59,10 +59,10 @@ "60": 1716.80 }, "additional_price": { - "120": 19.88, - "300": 26.48, - "600": 25.08, - "2000000000": 26.15 + "0": 19.88, + "121": 26.48, + "301": 25.08, + "601": 26.15 } } ] diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 4d5e62877..875e976a9 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -24,8 +24,8 @@ def basic_price(ampere, usage) end def unit_price(usage) - @additional_price_list.each do |_price| - return _price[1] if usage <= _price[0].to_i + @additional_price_list.sort.reverse.to_h.each do |_price| + return _price[1] if usage >= _price[0].to_i end raise Message::NO_UNIT_PRICE end @@ -39,7 +39,7 @@ def price(ampere, usage) end def price_with_tax(ampere, usage) - price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE).to_i + (price(ampere, usage) + (price(ampere, usage) * Simulator::TAX_RATE)).to_i end def display(ampere, usage) diff --git a/challengeA/shogo_takasaki/test/simulator_test.rb b/challengeA/shogo_takasaki/test/simulator_test.rb index 65c6f89c7..453537bd8 100644 --- a/challengeA/shogo_takasaki/test/simulator_test.rb +++ b/challengeA/shogo_takasaki/test/simulator_test.rb @@ -17,21 +17,21 @@ def test_simulate { provider_name: "東京電力エナジーパートナー", plan_name: "従量電灯B", - price: 15338.4 + price: 15338 }, { provider_name: "Looopでんき", - plan_name: "おうちプラン", price: 11616.0 + plan_name: "おうちプラン", price: 11616 }, { provider_name: "東京ガス", plan_name: "ずっとも電気1", - price: 13508.0 + price: 13508 }, { provider_name: "JXTGでんき", plan_name: "従量電灯B たっぷりプラン", - price: 12923.68 + price: 12923 } ] assert_equal result, @simulator.simulate From 4db36cee8f13f45bdc969776a0ec8cb66f6a237c Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 28 Sep 2021 10:03:45 +0900 Subject: [PATCH 21/23] =?UTF-8?q?=E5=8D=98=E4=BE=A1=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E9=96=A2=E6=95=B0=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/src/plan.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index 875e976a9..c59ea0dc3 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -24,9 +24,9 @@ def basic_price(ampere, usage) end def unit_price(usage) - @additional_price_list.sort.reverse.to_h.each do |_price| - return _price[1] if usage >= _price[0].to_i - end + result = @additional_price_list.select { |k, v| k.to_i <= usage }.max.last + return result unless result.nil? + raise Message::NO_UNIT_PRICE end From 0d17603255b0fe019ddd724e2c8cba51790183ce Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 28 Sep 2021 12:49:24 +0900 Subject: [PATCH 22/23] =?UTF-8?q?=E5=BE=93=E9=87=8F=E8=AA=B2=E9=87=91?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E9=96=A2=E6=95=B0=E5=90=8D=E7=A7=B0=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- challengeA/shogo_takasaki/data/plans.json | 6 +-- challengeA/shogo_takasaki/src/plan.rb | 10 ++-- challengeA/shogo_takasaki/test/plan_test.rb | 60 ++++++++++----------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/challengeA/shogo_takasaki/data/plans.json b/challengeA/shogo_takasaki/data/plans.json index e0690dfaa..9945c3728 100644 --- a/challengeA/shogo_takasaki/data/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -30,7 +30,7 @@ "50": 0.00, "60": 0.00 }, - "additional_price": { + "usage_price": { "0": 26.40 } }, @@ -43,7 +43,7 @@ "50": 1430.00, "60": 1716.00 }, - "additional_price": { + "usage_price": { "0": 23.67, "141": 23.88, "351": 26.41 @@ -58,7 +58,7 @@ "50": 1430.00, "60": 1716.80 }, - "additional_price": { + "usage_price": { "0": 19.88, "121": 26.48, "301": 25.08, diff --git a/challengeA/shogo_takasaki/src/plan.rb b/challengeA/shogo_takasaki/src/plan.rb index c59ea0dc3..9e3cd9b3e 100644 --- a/challengeA/shogo_takasaki/src/plan.rb +++ b/challengeA/shogo_takasaki/src/plan.rb @@ -2,7 +2,7 @@ # display plan info class Plan - attr_reader :provider_name, :plan_name, :basic_price_list, :additional_price_list + attr_reader :provider_name, :plan_name, :basic_price_list, :usage_price_list module Message NO_BASIC_PRICE = '基本料金設定無し' @@ -13,7 +13,7 @@ def initialize(plan) @provider_name = plan['provider_name'] @plan_name = plan['plan_name'] @basic_price_list = plan['basic_price'] - @additional_price_list = plan['additional_price'] + @usage_price_list = plan['usage_price'] end def basic_price(ampere, usage) @@ -24,18 +24,18 @@ def basic_price(ampere, usage) end def unit_price(usage) - result = @additional_price_list.select { |k, v| k.to_i <= usage }.max.last + result = @usage_price_list.select { |k, v| k.to_i <= usage }.max.last return result unless result.nil? raise Message::NO_UNIT_PRICE end - def additional_price(usage) + def usage_price(usage) unit_price(usage) * usage end def price(ampere, usage) - basic_price(ampere, usage) + additional_price(usage) + basic_price(ampere, usage) + usage_price(usage) end def price_with_tax(ampere, usage) diff --git a/challengeA/shogo_takasaki/test/plan_test.rb b/challengeA/shogo_takasaki/test/plan_test.rb index b661ad02c..78eba62fb 100644 --- a/challengeA/shogo_takasaki/test/plan_test.rb +++ b/challengeA/shogo_takasaki/test/plan_test.rb @@ -104,39 +104,39 @@ def test_jxtg_unit_price end def test_additional_price - assert_equal @tokyo_energy.unit_price(0) * 0, @tokyo_energy.additional_price(0) - assert_equal @tokyo_energy.unit_price(119) * 119, @tokyo_energy.additional_price(119) - assert_equal @tokyo_energy.unit_price(120) * 120, @tokyo_energy.additional_price(120) - assert_equal @tokyo_energy.unit_price(121) * 121, @tokyo_energy.additional_price(121) - assert_equal @tokyo_energy.unit_price(300) * 300, @tokyo_energy.additional_price(300) - assert_equal @tokyo_energy.unit_price(301) * 301, @tokyo_energy.additional_price(301) - assert_equal @tokyo_energy.unit_price(400) * 400, @tokyo_energy.additional_price(400) - - assert_equal @jxtg.unit_price(0) * 0, @jxtg.additional_price(0) - assert_equal @jxtg.unit_price(120) * 120, @jxtg.additional_price(120) - assert_equal @jxtg.unit_price(121) * 121, @jxtg.additional_price(121) - assert_equal @jxtg.unit_price(300) * 300, @jxtg.additional_price(300) - assert_equal @jxtg.unit_price(301) * 301, @jxtg.additional_price(301) - assert_equal @jxtg.unit_price(600) * 600, @jxtg.additional_price(600) - assert_equal @jxtg.unit_price(601) * 601, @jxtg.additional_price(601) + assert_equal @tokyo_energy.unit_price(0) * 0, @tokyo_energy.usage_price(0) + assert_equal @tokyo_energy.unit_price(119) * 119, @tokyo_energy.usage_price(119) + assert_equal @tokyo_energy.unit_price(120) * 120, @tokyo_energy.usage_price(120) + assert_equal @tokyo_energy.unit_price(121) * 121, @tokyo_energy.usage_price(121) + assert_equal @tokyo_energy.unit_price(300) * 300, @tokyo_energy.usage_price(300) + assert_equal @tokyo_energy.unit_price(301) * 301, @tokyo_energy.usage_price(301) + assert_equal @tokyo_energy.unit_price(400) * 400, @tokyo_energy.usage_price(400) + + assert_equal @jxtg.unit_price(0) * 0, @jxtg.usage_price(0) + assert_equal @jxtg.unit_price(120) * 120, @jxtg.usage_price(120) + assert_equal @jxtg.unit_price(121) * 121, @jxtg.usage_price(121) + assert_equal @jxtg.unit_price(300) * 300, @jxtg.usage_price(300) + assert_equal @jxtg.unit_price(301) * 301, @jxtg.usage_price(301) + assert_equal @jxtg.unit_price(600) * 600, @jxtg.usage_price(600) + assert_equal @jxtg.unit_price(601) * 601, @jxtg.usage_price(601) end def test_price - assert_equal @tokyo_energy.basic_price(10, 0) + @tokyo_energy.additional_price(0), @tokyo_energy.price(10, 0) - assert_equal @tokyo_energy.basic_price(15, 119) + @tokyo_energy.additional_price(119), @tokyo_energy.price(15, 119) - assert_equal @tokyo_energy.basic_price(20, 120) + @tokyo_energy.additional_price(120), @tokyo_energy.price(20, 120) - assert_equal @tokyo_energy.basic_price(30, 121) + @tokyo_energy.additional_price(121), @tokyo_energy.price(30, 121) - assert_equal @tokyo_energy.basic_price(40, 300) + @tokyo_energy.additional_price(300), @tokyo_energy.price(40, 300) - assert_equal @tokyo_energy.basic_price(50, 301) + @tokyo_energy.additional_price(301), @tokyo_energy.price(50, 301) - assert_equal @tokyo_energy.basic_price(60, 400) + @tokyo_energy.additional_price(400), @tokyo_energy.price(60, 400) - - assert_equal @jxtg.basic_price(30, 0) + @jxtg.additional_price(0), @jxtg.price(30, 0) - assert_equal @jxtg.basic_price(30, 120) + @jxtg.additional_price(120), @jxtg.price(30, 120) - assert_equal @jxtg.basic_price(40, 121) + @jxtg.additional_price(121), @jxtg.price(40, 121) - assert_equal @jxtg.basic_price(40, 300) + @jxtg.additional_price(300), @jxtg.price(40, 300) - assert_equal @jxtg.basic_price(50, 301) + @jxtg.additional_price(301), @jxtg.price(50, 301) - assert_equal @jxtg.basic_price(60, 600) + @jxtg.additional_price(600), @jxtg.price(60, 600) - assert_equal @jxtg.basic_price(60, 601) + @jxtg.additional_price(601), @jxtg.price(60, 601) + assert_equal @tokyo_energy.basic_price(10, 0) + @tokyo_energy.usage_price(0), @tokyo_energy.price(10, 0) + assert_equal @tokyo_energy.basic_price(15, 119) + @tokyo_energy.usage_price(119), @tokyo_energy.price(15, 119) + assert_equal @tokyo_energy.basic_price(20, 120) + @tokyo_energy.usage_price(120), @tokyo_energy.price(20, 120) + assert_equal @tokyo_energy.basic_price(30, 121) + @tokyo_energy.usage_price(121), @tokyo_energy.price(30, 121) + assert_equal @tokyo_energy.basic_price(40, 300) + @tokyo_energy.usage_price(300), @tokyo_energy.price(40, 300) + assert_equal @tokyo_energy.basic_price(50, 301) + @tokyo_energy.usage_price(301), @tokyo_energy.price(50, 301) + assert_equal @tokyo_energy.basic_price(60, 400) + @tokyo_energy.usage_price(400), @tokyo_energy.price(60, 400) + + assert_equal @jxtg.basic_price(30, 0) + @jxtg.usage_price(0), @jxtg.price(30, 0) + assert_equal @jxtg.basic_price(30, 120) + @jxtg.usage_price(120), @jxtg.price(30, 120) + assert_equal @jxtg.basic_price(40, 121) + @jxtg.usage_price(121), @jxtg.price(40, 121) + assert_equal @jxtg.basic_price(40, 300) + @jxtg.usage_price(300), @jxtg.price(40, 300) + assert_equal @jxtg.basic_price(50, 301) + @jxtg.usage_price(301), @jxtg.price(50, 301) + assert_equal @jxtg.basic_price(60, 600) + @jxtg.usage_price(600), @jxtg.price(60, 600) + assert_equal @jxtg.basic_price(60, 601) + @jxtg.usage_price(601), @jxtg.price(60, 601) end def test_price_with_tax From b754f13ad02877dcea6829e58d4ff3d5b9d76550 Mon Sep 17 00:00:00 2001 From: tksk Date: Tue, 28 Sep 2021 12:51:01 +0900 Subject: [PATCH 23/23] fix --- challengeA/shogo_takasaki/data/plans.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challengeA/shogo_takasaki/data/plans.json b/challengeA/shogo_takasaki/data/plans.json index 9945c3728..ed803aeb8 100644 --- a/challengeA/shogo_takasaki/data/plans.json +++ b/challengeA/shogo_takasaki/data/plans.json @@ -12,7 +12,7 @@ "50": 1430.00, "60": 1716.00 }, - "additional_price": { + "usage_price": { "0": 19.88, "301": 30.57, "121": 26.48