__VSCODE_LARAVEL_START_OUTPUT__[{"name":"Feature","files":[{"path":"tests\/Feature\/ComponentImportTest.php","tests":[{"name":"test_import_creates_components_with_menu_labels_and_food_groups","eventName":"test_import_creates_components_with_menu_labels_and_food_groups","line":47},{"name":"test_running_the_import_twice_does_not_duplicate_components","eventName":"test_running_the_import_twice_does_not_duplicate_components","line":69},{"name":"test_import_updates_existing_components_in_place_preserving_id","eventName":"test_import_updates_existing_components_in_place_preserving_id","line":78}],"name":"ComponentImportTest","directories":[]},{"path":"tests\/Feature\/DietProgramConfigurationTest.php","tests":[{"name":"test_six_diet_programs_exist","eventName":"test_six_diet_programs_exist","line":26},{"name":"test_weight_reduction_is_split_into_two_independent_phases","eventName":"test_weight_reduction_is_split_into_two_independent_phases","line":38},{"name":"test_macro_split_matches_spec","eventName":"test_macro_split_matches_spec","line":65},{"name":"test_food_group_distribution_is_database_driven_not_hardcoded","eventName":"test_food_group_distribution_is_database_driven_not_hardcoded","line":86},{"name":"test_weight_reduction_food_group_distribution_matches_spec","eventName":"test_weight_reduction_food_group_distribution_matches_spec","line":105},{"name":"test_diabetes_distribution_is_unaffected_by_the_weight_reduction_update","eventName":"test_diabetes_distribution_is_unaffected_by_the_weight_reduction_update","line":158}],"name":"DietProgramConfigurationTest","directories":[]},{"path":"tests\/Feature\/FoodGroupDistributionEndpointTest.php","tests":[{"name":"test_wr_phase_1_endpoint_returns_the_current_database_values","eventName":"test_wr_phase_1_endpoint_returns_the_current_database_values","line":65},{"name":"test_wr_phase_2_endpoint_returns_different_values_from_phase_1","eventName":"test_wr_phase_2_endpoint_returns_different_values_from_phase_1","line":81},{"name":"test_default_diet_type_without_phase_resolves_to_phase_1","eventName":"test_default_diet_type_without_phase_resolves_to_phase_1","line":92},{"name":"test_an_invalid_diet_type_is_rejected","eventName":"test_an_invalid_diet_type_is_rejected","line":101},{"name":"test_guests_cannot_call_the_endpoint","eventName":"test_guests_cannot_call_the_endpoint","line":108}],"name":"FoodGroupDistributionEndpointTest","directories":[]},{"path":"tests\/Feature\/MealPlannerGenerateEndpointTest.php","tests":[{"name":"test_guests_cannot_call_the_generation_endpoint","eventName":"test_guests_cannot_call_the_generation_endpoint","line":56},{"name":"test_an_authenticated_consultant_can_generate_a_menu","eventName":"test_an_authenticated_consultant_can_generate_a_menu","line":64},{"name":"test_wr_phase_2_can_be_requested_explicitly","eventName":"test_wr_phase_2_can_be_requested_explicitly","line":85},{"name":"test_the_onsite_consultation_wizard_page_renders_with_the_new_step9_markup","eventName":"test_the_onsite_consultation_wizard_page_renders_with_the_new_step9_markup","line":101},{"name":"test_step9_shows_the_merged_meal_editor_and_step10_is_now_the_summary","eventName":"test_step9_shows_the_merged_meal_editor_and_step10_is_now_the_summary","line":114},{"name":"test_an_invalid_diet_type_is_rejected","eventName":"test_an_invalid_diet_type_is_rejected","line":131}],"name":"MealPlannerGenerateEndpointTest","directories":[]},{"path":"tests\/Feature\/MenuGenerationServiceTest.php","tests":[{"name":"test_generates_breakfast_lunch_and_dinner_for_every_program","eventName":"test_generates_breakfast_lunch_and_dinner_for_every_program","line":36},{"name":"test_target_macros_reuse_the_existing_nutrition_calculator","eventName":"test_target_macros_reuse_the_existing_nutrition_calculator","line":66},{"name":"test_fruit_is_included_only_when_the_distribution_allocates_it","eventName":"test_fruit_is_included_only_when_the_distribution_allocates_it","line":76},{"name":"test_lunch_and_dinner_use_the_c2_c3_p1_m1_o1_combination","eventName":"test_lunch_and_dinner_use_the_c2_c3_p1_m1_o1_combination","line":86},{"name":"test_breakfast_uses_the_c1_c4_p2_p3_m2_m1_o2_o1_combination","eventName":"test_breakfast_uses_the_c1_c4_p2_p3_m2_m1_o2_o1_combination","line":114},{"name":"test_wr_phase_1_and_phase_2_generate_different_meal_shapes","eventName":"test_wr_phase_1_and_phase_2_generate_different_meal_shapes","line":136},{"name":"test_regeneration_with_a_different_seed_can_change_the_selection","eventName":"test_regeneration_with_a_different_seed_can_change_the_selection","line":149},{"name":"test_excluded_components_are_never_selected","eventName":"test_excluded_components_are_never_selected","line":160},{"name":"test_missing_menu_label_components_are_reported_not_silently_dropped","eventName":"test_missing_menu_label_components_are_reported_not_silently_dropped","line":178},{"name":"test_generated_meal_calories_are_reported_against_target_when_undershooting","eventName":"test_generated_meal_calories_are_reported_against_target_when_undershooting","line":189},{"name":"test_half_share_picks_for_a_slot_sum_to_the_food_groups_target_not_beyond_it","eventName":"test_half_share_picks_for_a_slot_sum_to_the_food_groups_target_not_beyond_it","line":210},{"name":"test_oil_slots_are_trimmed_by_fat_already_delivered_earlier_in_the_meal","eventName":"test_oil_slots_are_trimmed_by_fat_already_delivered_earlier_in_the_meal","line":240},{"name":"test_a_half_share_main_carb_label_does_not_double_count_toward_the_meal_total","eventName":"test_a_half_share_main_carb_label_does_not_double_count_toward_the_meal_total","line":251},{"name":"test_generated_meals_never_exceed_their_calorie_target_by_a_wide_margin","eventName":"test_generated_meals_never_exceed_their_calorie_target_by_a_wide_margin","line":268},{"name":"test_generated_daily_totals_do_not_exceed_any_macro_target_by_a_wide_margin","eventName":"test_generated_daily_totals_do_not_exceed_any_macro_target_by_a_wide_margin","line":289},{"name":"test_generated_daily_totals_reach_a_reasonable_share_of_the_calorie_target","eventName":"test_generated_daily_totals_reach_a_reasonable_share_of_the_calorie_target","line":310},{"name":"test_only_meals_option_restricts_generation_to_a_single_meal","eventName":"test_only_meals_option_restricts_generation_to_a_single_meal","line":320}],"name":"MenuGenerationServiceTest","directories":[]},{"path":"tests\/Feature\/OnsiteConsultationDraftTest.php","tests":[{"name":"test_a_draft_can_be_saved_from_step_one_with_almost_nothing_filled_in","eventName":"test_a_draft_can_be_saved_from_step_one_with_almost_nothing_filled_in","line":62},{"name":"test_saving_a_draft_again_updates_the_same_record_not_a_new_one","eventName":"test_saving_a_draft_again_updates_the_same_record_not_a_new_one","line":81},{"name":"test_a_consultant_cannot_save_a_draft_into_another_consultants_consultation","eventName":"test_a_consultant_cannot_save_a_draft_into_another_consultants_consultation","line":104},{"name":"test_a_consultant_can_resume_editing_their_own_draft","eventName":"test_a_consultant_can_resume_editing_their_own_draft","line":123},{"name":"test_a_consultant_cannot_resume_another_consultants_draft","eventName":"test_a_consultant_cannot_resume_another_consultants_draft","line":141},{"name":"test_a_final_submit_from_a_resumed_draft_updates_the_same_record_and_marks_it_completed","eventName":"test_a_final_submit_from_a_resumed_draft_updates_the_same_record_and_marks_it_completed","line":156},{"name":"test_draft_consultations_show_a_resume_link_on_the_index_page","eventName":"test_draft_consultations_show_a_resume_link_on_the_index_page","line":182}],"name":"OnsiteConsultationDraftTest","directories":[]},{"path":"tests\/Feature\/OtpLoginTest.php","tests":[{"name":"test_requesting_a_code_creates_a_hashed_otp","eventName":"test_requesting_a_code_creates_a_hashed_otp","line":30},{"name":"test_an_unknown_number_is_rejected","eventName":"test_an_unknown_number_is_rejected","line":44},{"name":"test_a_valid_code_signs_the_consultant_in","eventName":"test_a_valid_code_signs_the_consultant_in","line":52},{"name":"test_a_wrong_code_is_rejected_and_counted","eventName":"test_a_wrong_code_is_rejected_and_counted","line":71},{"name":"test_the_portal_is_closed_without_a_verified_session","eventName":"test_the_portal_is_closed_without_a_verified_session","line":91}],"name":"OtpLoginTest","directories":[]},{"path":"tests\/Feature\/PlanQuotaTest.php","tests":[{"name":"test_a_clinic_over_its_patient_quota_is_sent_to_the_plans_page","eventName":"test_a_clinic_over_its_patient_quota_is_sent_to_the_plans_page","line":18},{"name":"test_diamond_quotas_are_unlimited","eventName":"test_diamond_quotas_are_unlimited","line":52}],"name":"PlanQuotaTest","directories":[]}]},{"name":"Unit","files":[{"path":"tests\/Unit\/NutritionCalculatorTest.php","tests":[{"name":"test_bmr_for_a_male","eventName":"test_bmr_for_a_male","line":22},{"name":"test_bmr_for_a_female","eventName":"test_bmr_for_a_female","line":31},{"name":"test_bmi_and_category","eventName":"test_bmi_and_category","line":36},{"name":"test_water_target_scales_with_weight_and_activity","eventName":"test_water_target_scales_with_weight_and_activity","line":45}],"name":"NutritionCalculatorTest","directories":[]},{"path":"tests\/Unit\/OnsiteConsultationPdfServiceMealPreviewTest.php","tests":[{"name":"test_meal_totals_are_scaled_by_the_chosen_portion_not_the_full_reference_quantity","eventName":"test_meal_totals_are_scaled_by_the_chosen_portion_not_the_full_reference_quantity","line":49},{"name":"test_meal_totals_fall_back_to_the_full_reference_quantity_when_no_weight_is_recorded","eventName":"test_meal_totals_fall_back_to_the_full_reference_quantity_when_no_weight_is_recorded","line":85}],"name":"OnsiteConsultationPdfServiceMealPreviewTest","directories":[]}]}]__VSCODE_LARAVEL_END_OUTPUT__