From 4e9b15550f859e1ce3386cbfb771158cf36f5694 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:15:35 +0000 Subject: [PATCH 01/16] Use next_node block in :adoption_is_the_employee_on_your_payroll? I've replaced `define_predicate` with `next_node_calculation` in an attempt to keep the code as similar as possible. I've had to update the names used by `next_node_calculation` as the question marks cause problems when the state object is converted to a hash in preparation for rendering the ERB templates. --- .../shared_logic/adoption-calculator.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb index efa8ed2b04a..b06b5c3a62a 100644 --- a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb @@ -101,12 +101,21 @@ calculator.format_date_day to_saturday end - define_predicate(:no_contract_not_on_payroll?) do |response| + next_node_calculation(:no_contract_not_on_payroll) do |response| employee_has_contract_adoption == 'no' && response == 'no' end - next_node_if(:adoption_not_entitled_to_leave_or_pay, no_contract_not_on_payroll?) - next_node :adoption_date_leave_starts? + permitted_next_nodes = [ + :adoption_date_leave_starts?, + :adoption_not_entitled_to_leave_or_pay + ] + next_node(permitted: permitted_next_nodes) do + if no_contract_not_on_payroll + :adoption_not_entitled_to_leave_or_pay + else + :adoption_date_leave_starts? + end + end end ## QA6 From ec727468a001a7517a340ac32af436e9dd2e7681 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:17:04 +0000 Subject: [PATCH 02/16] Use next_node block in :adoption_date_leave_starts? I've replaced `define_predicate` with `next_node_calculation` in an attempt to keep the code as similar as possible. I've had to update the names used by `next_node_calculation` as the question marks cause problems when the state object is converted to a hash in preparation for rendering the ERB templates. --- .../shared_logic/adoption-calculator.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb index b06b5c3a62a..2c4d5b499ae 100644 --- a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb @@ -146,12 +146,21 @@ calculator.format_date calculator.a_notice_leave end - define_predicate(:has_contract_not_on_payroll?) do + next_node_calculation(:has_contract_not_on_payroll) do employee_has_contract_adoption == 'yes' && on_payroll == 'no' end - next_node_if(:adoption_leave_and_pay, has_contract_not_on_payroll?) - next_node :last_normal_payday_adoption? + permitted_next_nodes = [ + :adoption_leave_and_pay, + :last_normal_payday_adoption? + ] + next_node(permitted: permitted_next_nodes) do + if has_contract_not_on_payroll + :adoption_leave_and_pay + else + :last_normal_payday_adoption? + end + end end # QA7 From 79a069363ab402327ce594a23ee1d80e68c61e58 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:18:22 +0000 Subject: [PATCH 03/16] Use next_node block in :earnings_for_pay_period_adoption? I've replaced `define_predicate` with `next_node_calculation` in an attempt to keep the code as similar as possible. I've had to update the names used by `next_node_calculation` as the question marks cause problems when the state object is converted to a hash in preparation for rendering the ERB templates. --- .../shared_logic/adoption-calculator.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb index 2c4d5b499ae..873c5efbc1e 100644 --- a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb @@ -239,12 +239,21 @@ calculator end - define_predicate(:average_weekly_earnings_under_lower_earning_limit?) do + next_node_calculation(:average_weekly_earnings_under_lower_earning_limit) do calculator.average_weekly_earnings < calculator.lower_earning_limit end - next_node_if(:adoption_leave_and_pay, average_weekly_earnings_under_lower_earning_limit?) - next_node :how_do_you_want_the_sap_calculated? + permitted_next_nodes = [ + :adoption_leave_and_pay, + :how_do_you_want_the_sap_calculated? + ] + next_node(permitted: permitted_next_nodes) do + if average_weekly_earnings_under_lower_earning_limit + :adoption_leave_and_pay + else + :how_do_you_want_the_sap_calculated? + end + end end ## QA11 From 2d21b76ea162623c8ba3f2f90c99789da50492a5 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:19:40 +0000 Subject: [PATCH 04/16] Use next_node block in :how_do_you_want_the_sap_calculated? --- .../shared_logic/adoption-calculator.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb index 873c5efbc1e..b837fcf013a 100644 --- a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb @@ -263,9 +263,20 @@ save_input_as :sap_calculation_method - next_node_if(:adoption_leave_and_pay, responded_with('weekly_starting')) - next_node_if(:monthly_pay_paternity?, variable_matches(:pay_pattern, 'monthly')) ## Shared with paternity calculator - next_node :next_pay_day_paternity? ## Shared with paternity calculator + permitted_next_nodes = [ + :adoption_leave_and_pay, + :monthly_pay_paternity?, + :next_pay_day_paternity? + ] + next_node(permitted: permitted_next_nodes) do |response| + if response == 'weekly_starting' + :adoption_leave_and_pay + elsif pay_pattern == 'monthly' + :monthly_pay_paternity? + else + :next_pay_day_paternity? + end + end end outcome :adoption_leave_and_pay do From 9570a9accbb4be3b2360dfa6cacddd4987b6e7d8 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:40:08 +0000 Subject: [PATCH 05/16] Use next_node block in :how_do_you_want_the_smp_calculated? --- .../shared_logic/maternity-calculator.rb | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/maternity-calculator.rb b/lib/smart_answer_flows/shared_logic/maternity-calculator.rb index c768978eca5..f8bfca8435b 100644 --- a/lib/smart_answer_flows/shared_logic/maternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/maternity-calculator.rb @@ -189,11 +189,22 @@ save_input_as :smp_calculation_method - on_condition(responded_with("usual_paydates")) do - next_node_if(:when_in_the_month_is_the_employee_paid?, variable_matches(:pay_pattern, "monthly")) - next_node(:when_is_your_employees_next_pay_day?) + permitted_next_nodes = [ + :maternity_leave_and_pay_result, + :when_in_the_month_is_the_employee_paid?, + :when_is_your_employees_next_pay_day? + ] + next_node(permitted: permitted_next_nodes) do |response| + if response == 'usual_paydates' + if pay_pattern == 'monthly' + :when_in_the_month_is_the_employee_paid? + else + :when_is_your_employees_next_pay_day? + end + else + :maternity_leave_and_pay_result + end end - next_node(:maternity_leave_and_pay_result) end ## QM11 From d1c3f1c70fab30e371f5ebb48210aa31199c8ab2 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:42:23 +0000 Subject: [PATCH 06/16] Use next_node block in :employee_on_payroll_paternity? --- .../shared_logic/paternity-calculator.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index 2fd51ca1a78..55df240f14b 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -217,9 +217,20 @@ paternity_adoption ? ap_adoption_date_formatted : date_of_birth end - next_node_if(:employee_still_employed_on_birth_date?, responded_with('yes')) - next_node_if(:paternity_not_entitled_to_leave_or_pay, variable_matches(:has_contract, 'no')) - next_node :employee_start_paternity? + permitted_next_nodes = [ + :employee_start_paternity?, + :employee_still_employed_on_birth_date?, + :paternity_not_entitled_to_leave_or_pay + ] + next_node(permitted: permitted_next_nodes) do |response| + if response == 'yes' + :employee_still_employed_on_birth_date? + elsif has_contract == 'no' + :paternity_not_entitled_to_leave_or_pay + else + :employee_start_paternity? + end + end end ## QP7 From eab96e380b2ba9b5e0a0443fbe274bf5df05597f Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:43:29 +0000 Subject: [PATCH 07/16] Use next_node block in :employee_still_employed_on_birth_date? --- .../shared_logic/paternity-calculator.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index 55df240f14b..d750787c9cf 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -239,8 +239,17 @@ option :no save_input_as :employed_dob - next_node_if(:paternity_not_entitled_to_leave_or_pay, variable_matches(:has_contract, 'no') & responded_with('no')) - next_node :employee_start_paternity? + permitted_next_nodes = [ + :employee_start_paternity?, + :paternity_not_entitled_to_leave_or_pay + ] + next_node(permitted: permitted_next_nodes) do |response| + if has_contract == 'no' && response == 'no' + :paternity_not_entitled_to_leave_or_pay + else + :employee_start_paternity? + end + end end ## QP8 From 66b43f591dfce205aef13ba92369b5a0524c41ff Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:45:06 +0000 Subject: [PATCH 08/16] Use next_node block in :employee_paternity_length? --- .../shared_logic/paternity-calculator.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index d750787c9cf..93d905d96a3 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -287,9 +287,17 @@ calculator.pay_end_date end - next_node_if(:paternity_not_entitled_to_leave_or_pay, variable_matches(:has_contract, 'yes') & - (variable_matches(:on_payroll, 'no') | variable_matches(:employed_dob, 'no'))) - next_node :last_normal_payday_paternity? + permitted_next_nodes = [ + :last_normal_payday_paternity?, + :paternity_not_entitled_to_leave_or_pay + ] + next_node(permitted: permitted_next_nodes) do + if has_contract == 'yes' && (on_payroll == 'no' || employed_dob == 'no') + :paternity_not_entitled_to_leave_or_pay + else + :last_normal_payday_paternity? + end + end end ## QP10 From d765a3c144d54bf3cb1efa61862688aae16ef086 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:46:11 +0000 Subject: [PATCH 09/16] Use next_node block in :earnings_for_pay_period_paternity? --- .../shared_logic/paternity-calculator.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index 93d905d96a3..ac8d279ccf8 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -366,12 +366,21 @@ calculator end - define_predicate(:average_weekly_earnings_under_lower_earning_limit?) do + next_node_calculation(:average_weekly_earnings_under_lower_earning_limit) do calculator.average_weekly_earnings < calculator.lower_earning_limit end - next_node_if(:paternity_leave_and_pay, average_weekly_earnings_under_lower_earning_limit?) - next_node :how_do_you_want_the_spp_calculated? + permitted_next_nodes = [ + :how_do_you_want_the_spp_calculated?, + :paternity_leave_and_pay + ] + next_node(permitted: permitted_next_nodes) do + if average_weekly_earnings_under_lower_earning_limit + :paternity_leave_and_pay + else + :how_do_you_want_the_spp_calculated? + end + end end ## QP14 From 465104908b06095a7f5d976d155d290636d68556 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:47:14 +0000 Subject: [PATCH 10/16] Use next_node block in :how_do_you_want_the_spp_calculated? --- .../shared_logic/paternity-calculator.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index ac8d279ccf8..3f881469c1d 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -390,9 +390,20 @@ save_input_as :spp_calculation_method - next_node_if(:paternity_leave_and_pay, responded_with('weekly_starting')) - next_node_if(:monthly_pay_paternity?, variable_matches(:pay_pattern, 'monthly')) - next_node :next_pay_day_paternity? + permitted_next_nodes = [ + :monthly_pay_paternity?, + :next_pay_day_paternity?, + :paternity_leave_and_pay + ] + next_node(permitted: permitted_next_nodes) do |response| + if response == 'weekly_starting' + :paternity_leave_and_pay + elsif pay_pattern == 'monthly' + :monthly_pay_paternity? + else + :next_pay_day_paternity? + end + end end ## QP15 - Also shared with adoption calculator here onwards From 395438d4adf735525f0fbf9337a819294619cfe2 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:49:20 +0000 Subject: [PATCH 11/16] Use next_node block in :monthly_pay_paternity? --- .../shared_logic/paternity-calculator.rb | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index 3f881469c1d..73838955f8b 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -429,11 +429,26 @@ save_input_as :monthly_pay_method - next_node_if(:specific_date_each_month_paternity?, responded_with('specific_date_each_month')) - next_node_if(:days_of_the_week_paternity?, responded_with('last_working_day_of_the_month')) - next_node_if(:day_of_the_month_paternity?, responded_with('a_certain_week_day_each_month')) - next_node_if(:adoption_leave_and_pay, variable_matches(:leave_type, 'adoption')) - next_node :paternity_leave_and_pay + permitted_next_nodes = [ + :adoption_leave_and_pay, + :day_of_the_month_paternity?, + :days_of_the_week_paternity?, + :paternity_leave_and_pay, + :specific_date_each_month_paternity? + ] + next_node(permitted: permitted_next_nodes) do |response| + if response == 'specific_date_each_month' + :specific_date_each_month_paternity? + elsif response == 'last_working_day_of_the_month' + :days_of_the_week_paternity? + elsif response == 'a_certain_week_day_each_month' + :day_of_the_month_paternity? + elsif leave_type == 'adoption' + :adoption_leave_and_pay + else + :paternity_leave_and_pay + end + end end ## QP17 From 4f55e154ba177892b692bbd454f7995d6a8ad28b Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:50:04 +0000 Subject: [PATCH 12/16] Use next-node block in :specific_date_each_month_paternity? --- .../shared_logic/paternity-calculator.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index 73838955f8b..e8cbcc6b7c4 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -460,8 +460,17 @@ calculator.pay_day_in_month = day end - next_node_if(:adoption_leave_and_pay, variable_matches(:leave_type, 'adoption')) - next_node :paternity_leave_and_pay + permitted_next_nodes = [ + :adoption_leave_and_pay, + :paternity_leave_and_pay + ] + next_node(permitted: permitted_next_nodes) do + if leave_type == 'adoption' + :adoption_leave_and_pay + else + :paternity_leave_and_pay + end + end end ## QP18 From 0f85033188302218866e2c876f68840129b446c8 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:50:49 +0000 Subject: [PATCH 13/16] Use next_node block in :days_of_the_week_paternity? --- .../shared_logic/paternity-calculator.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index e8cbcc6b7c4..44f2f878b36 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -482,8 +482,17 @@ calculator.pay_day_in_week = response.split(",").sort.last.to_i end - next_node_if(:adoption_leave_and_pay, variable_matches(:leave_type, 'adoption')) - next_node :paternity_leave_and_pay + permitted_next_nodes = [ + :adoption_leave_and_pay, + :paternity_leave_and_pay + ] + next_node(permitted: permitted_next_nodes) do + if leave_type == 'adoption' + :adoption_leave_and_pay + else + :paternity_leave_and_pay + end + end end ## QP19 From c7836b9f6ecc4629365ec527f3b3823f7aad4d2c Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:51:38 +0000 Subject: [PATCH 14/16] Use next_node block in :pay_date_options_paternity? --- .../shared_logic/paternity-calculator.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb index 44f2f878b36..4eb1e9239a4 100644 --- a/lib/smart_answer_flows/shared_logic/paternity-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/paternity-calculator.rb @@ -525,8 +525,17 @@ calculator.pay_week_in_month = response end - next_node_if(:adoption_leave_and_pay, variable_matches(:leave_type, 'adoption')) - next_node :paternity_leave_and_pay + permitted_next_nodes = [ + :adoption_leave_and_pay, + :paternity_leave_and_pay + ] + next_node(permitted: permitted_next_nodes) do + if leave_type == 'adoption' + :adoption_leave_and_pay + else + :paternity_leave_and_pay + end + end end # Paternity outcomes From b393cf23b0fe9becc142747394997b05931107dc Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 17:02:38 +0000 Subject: [PATCH 15/16] Fix Rubocop violation: IndentationConsistency --- lib/smart_answer_flows/shared_logic/adoption-calculator.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb index b837fcf013a..3e5feacc8ca 100644 --- a/lib/smart_answer_flows/shared_logic/adoption-calculator.rb +++ b/lib/smart_answer_flows/shared_logic/adoption-calculator.rb @@ -222,9 +222,9 @@ ## QA10 money_question :earnings_for_pay_period_adoption? do - calculate :lower_earning_limit do - sprintf("%.2f", calculator.lower_earning_limit) - end + calculate :lower_earning_limit do + sprintf("%.2f", calculator.lower_earning_limit) + end calculate :average_weekly_earnings do sprintf("%.2f", calculator.average_weekly_earnings) From bc998d67561eace1dc6fcc20c2ed7603ff9c75c5 Mon Sep 17 00:00:00 2001 From: Chris Roos Date: Tue, 17 Nov 2015 16:21:19 +0000 Subject: [PATCH 16/16] Update checksum data for maternity-paternity-calculator --- test/data/maternity-paternity-calculator-files.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/data/maternity-paternity-calculator-files.yml b/test/data/maternity-paternity-calculator-files.yml index 1364903ca69..daf42429c29 100644 --- a/test/data/maternity-paternity-calculator-files.yml +++ b/test/data/maternity-paternity-calculator-files.yml @@ -70,9 +70,9 @@ lib/smart_answer_flows/maternity-paternity-calculator/questions/what_type_of_lea lib/smart_answer_flows/maternity-paternity-calculator/questions/when_in_the_month_is_the_employee_paid.govspeak.erb: d540503a4470d20b26ceb4fd5a84a3f4 lib/smart_answer_flows/maternity-paternity-calculator/questions/when_is_your_employees_next_pay_day.govspeak.erb: a74aad333d92213910367be1ecee9e80 lib/smart_answer_flows/maternity-paternity-calculator/questions/which_week_in_month_is_the_employee_paid.govspeak.erb: 19fef5ffcbb85e74f88dd24ce3ccf4c0 -lib/smart_answer_flows/shared_logic/adoption-calculator.rb: c166e63f0d4694acc664c789953659ba -lib/smart_answer_flows/shared_logic/maternity-calculator.rb: 5b566b38ef501d2a7c69a5e94ca18c2e -lib/smart_answer_flows/shared_logic/paternity-calculator.rb: b09bdfd9c704ddbe78252173c4ccd0bd +lib/smart_answer_flows/shared_logic/adoption-calculator.rb: 74d75b8b3fd2a62ae177dffce0271b1f +lib/smart_answer_flows/shared_logic/maternity-calculator.rb: 93d151262f844f606f21d711aef31ba7 +lib/smart_answer_flows/shared_logic/paternity-calculator.rb: 4db5c4bc2f2e96f52bbdc41d7aa850a5 lib/smart_answer/calculators/maternity_paternity_calculator.rb: 24de99189c23e9a7cc048871a817bb3c lib/data/rates/maternity_paternity_birth.yml: 3eef956f1020576a9343647fec34dd01 lib/data/rates/maternity_paternity_adoption.yml: 453c4d90b6fd9ffe1556782665f313fc