Skip to content

Commit 70dbe78

Browse files
committed
add second recipe to fixture build_recipe_one_contribution
1 parent 4c4b066 commit 70dbe78

3 files changed

Lines changed: 48 additions & 62 deletions

File tree

tests/conftest.py

Lines changed: 27 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -149,20 +149,35 @@ def _capturestdout(f, *args, **kwargs):
149149

150150
@pytest.fixture(scope="function")
151151
def build_recipe_one_contribution():
152-
"""Helper to build a simple recipe."""
153-
profile = Profile()
152+
"""Helper to build a simple recipe.
153+
154+
Two identical recipes are returned if needed.
155+
"""
154156
x = linspace(0, pi, 11)
155157
y = sin(x)
156-
profile.set_observed_profile(x, y)
157-
contribution = FitContribution("c1")
158-
contribution.set_profile(profile)
159-
contribution.set_equation("amplitude*sin(wave_number*x + phase_shift)")
160-
recipe = FitRecipe()
161-
recipe.add_contribution(contribution)
162-
recipe.add_variable(contribution.amplitude, 4)
163-
recipe.add_variable(contribution.wave_number, 3)
164-
recipe.add_variable(contribution.phase_shift, 2)
165-
return recipe
158+
159+
profile1 = Profile()
160+
profile1.set_observed_profile(x, y)
161+
contribution1 = FitContribution("c1")
162+
contribution1.set_profile(profile1)
163+
contribution1.set_equation("amplitude*sin(wave_number*x + phase_shift)")
164+
recipe1 = FitRecipe()
165+
recipe1.add_contribution(contribution1)
166+
recipe1.add_variable(contribution1.amplitude, 4)
167+
recipe1.add_variable(contribution1.wave_number, 3)
168+
recipe1.add_variable(contribution1.phase_shift, 2)
169+
170+
profile2 = Profile()
171+
profile2.set_observed_profile(x, y)
172+
contribution2 = FitContribution("c2")
173+
contribution2.set_profile(profile2)
174+
contribution2.set_equation("amplitude*sin(wave_number*x + phase_shift)")
175+
recipe2 = FitRecipe()
176+
recipe2.add_contribution(contribution2)
177+
recipe2.add_variable(contribution2.amplitude, 4)
178+
recipe2.add_variable(contribution2.wave_number, 3)
179+
recipe2.add_variable(contribution2.phase_shift, 2)
180+
return recipe1, recipe2
166181

167182

168183
@pytest.fixture(scope="function")
@@ -209,35 +224,6 @@ def build_recipe_two_contributions():
209224
return recipe
210225

211226

212-
@pytest.fixture(scope="function")
213-
def build_two_recipes():
214-
x = linspace(0, pi, 11)
215-
y = sin(x)
216-
217-
profile1 = Profile()
218-
profile1.set_observed_profile(x, y)
219-
contribution1 = FitContribution("c1")
220-
contribution1.set_profile(profile1)
221-
contribution1.set_equation("amplitude*sin(wave_number*x + phase_shift)")
222-
recipe1 = FitRecipe()
223-
recipe1.add_contribution(contribution1)
224-
recipe1.add_variable(contribution1.amplitude, 4)
225-
recipe1.add_variable(contribution1.wave_number, 3)
226-
recipe1.add_variable(contribution1.phase_shift, 2)
227-
228-
profile2 = Profile()
229-
profile2.set_observed_profile(x, y)
230-
contribution2 = FitContribution("c2")
231-
contribution2.set_profile(profile2)
232-
contribution2.set_equation("amplitude*sin(wave_number*x + phase_shift)")
233-
recipe2 = FitRecipe()
234-
recipe2.add_contribution(contribution2)
235-
recipe2.add_variable(contribution2.amplitude, 4)
236-
recipe2.add_variable(contribution2.wave_number, 3)
237-
recipe2.add_variable(contribution2.phase_shift, 2)
238-
return recipe1, recipe2
239-
240-
241227
@pytest.fixture
242228
def temp_data_files(tmp_path):
243229
"""

tests/test_fitrecipe.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ def test_initialize_recipe_from_recipe(build_recipe_one_contribution):
469469
# expected: recipe is initialized with everything:
470470
# contributions, profiles (contained in contributions),
471471
# variables, restraints, and constraints
472-
recipe1 = build_recipe_one_contribution
472+
recipe1, _ = build_recipe_one_contribution
473473
optimize_recipe(recipe1)
474474
expected_parameters_dict = recipe1._parameters
475475
expected_constraints_dict = recipe1._constraints
@@ -528,12 +528,12 @@ def test_initialize_recipe_from_recipe_bad(build_recipe_two_contributions):
528528
recipe2.initialize_recipe_with_recipe(recipe_bad)
529529

530530

531-
def test_initialize_recipe_from_results_object(build_two_recipes):
531+
def test_initialize_recipe_from_results_object(build_recipe_one_contribution):
532532
# Case: User initializes a FitRecipe from a FitResults object
533533
# expected: recipe is initialized with variables from previous fit
534534

535535
# create unique recipe1
536-
recipe1, recipe2 = build_two_recipes
536+
recipe1, recipe2 = build_recipe_one_contribution
537537
optimize_recipe(recipe1)
538538
results1 = FitResults(recipe1)
539539
expected_values = np.round(results1.varvals, 5)
@@ -579,7 +579,7 @@ def test_initialize_recipe_from_results_file(
579579
expected_names = ["amplitude", "phase_shift", "wave_number"]
580580
expected_values = [1, 1, 0]
581581

582-
recipe = build_recipe_one_contribution
582+
recipe, _ = build_recipe_one_contribution
583583
recipe.initialize_recipe_with_results(results_file)
584584
results = FitResults(recipe)
585585
actual_values = np.round(results.varvals, 5)
@@ -595,7 +595,7 @@ def test_initialize_recipe_from_results_file_bad(
595595
# Case: User tries to initialize a recipe with something that
596596
# isn't a path, str, or FitResults object
597597
# Expected: raised ValueError with message
598-
recipe = build_recipe_one_contribution
598+
recipe, _ = build_recipe_one_contribution
599599
bad_input = 12345 # not a valid input type
600600
msg = (
601601
"The input results must be a FitResults object or a path to a "
@@ -689,7 +689,7 @@ def build_recipe_from_datafile_deprecated(datafile):
689689

690690

691691
def test_plot_recipe_bad_display(build_recipe_one_contribution):
692-
recipe = build_recipe_one_contribution
692+
recipe, _ = build_recipe_one_contribution
693693
# Case: All plots are disabled
694694
# expected: raised ValueError with message
695695
plt.close("all")
@@ -719,7 +719,7 @@ def test_plot_recipe_before_refinement(capsys, build_recipe_one_contribution):
719719
# Case: User tries to plot recipe before refinement
720720
# expected: Data plotted without fit line or difference curve
721721
# and warning message printed
722-
recipe = build_recipe_one_contribution
722+
recipe, _ = build_recipe_one_contribution
723723
plt.close("all")
724724
before = set(plt.get_fignums())
725725
# include fit_label="nothing" to make sure fit line is not plotted
@@ -747,7 +747,7 @@ def test_plot_recipe_before_refinement(capsys, build_recipe_one_contribution):
747747
def test_plot_recipe_after_refinement(build_recipe_one_contribution):
748748
# Case: User refines recipe and then plots
749749
# expected: Plot generates with no problem
750-
recipe = build_recipe_one_contribution
750+
recipe, _ = build_recipe_one_contribution
751751
optimize_recipe(recipe)
752752
plt.close("all")
753753
before = set(plt.get_fignums())
@@ -784,7 +784,7 @@ def test_plot_recipe_two_contributions(build_recipe_two_contributions):
784784
def test_plot_recipe_on_existing_plot(build_recipe_one_contribution):
785785
# Case: User passes axes to plot_recipe to plot on existing figure
786786
# expected: User modifications are present in the final figure
787-
recipe = build_recipe_one_contribution
787+
recipe, _ = build_recipe_one_contribution
788788
optimize_recipe(recipe)
789789
plt.close("all")
790790
fig, ax = plt.subplots()
@@ -804,7 +804,7 @@ def test_plot_recipe_on_existing_plot(build_recipe_one_contribution):
804804
def test_plot_recipe_add_new_data(build_recipe_one_contribution):
805805
# Case: User wants to add data to figure generated by plot_recipe
806806
# Expected: New data is added to existing figure (check with labels)
807-
recipe = build_recipe_one_contribution
807+
recipe, _ = build_recipe_one_contribution
808808
optimize_recipe(recipe)
809809
plt.close("all")
810810
before = set(plt.get_fignums())
@@ -848,7 +848,7 @@ def test_plot_recipe_add_new_data_two_figs(build_recipe_two_contributions):
848848
def test_plot_recipe_set_title(build_recipe_one_contribution):
849849
# Case: User sets title via plot_recipe
850850
# Expected: Title is set correctly
851-
recipe = build_recipe_one_contribution
851+
recipe, _ = build_recipe_one_contribution
852852
optimize_recipe(recipe)
853853
plt.close("all")
854854
expected_title = "Custom Recipe Title"
@@ -862,7 +862,7 @@ def test_plot_recipe_set_title(build_recipe_one_contribution):
862862
def test_plot_recipe_set_defaults(build_recipe_one_contribution):
863863
# Case: user sets default plot options with set_plot_defaults
864864
# Expected: plot_recipe uses the default options for all calls
865-
recipe = build_recipe_one_contribution
865+
recipe, _ = build_recipe_one_contribution
866866
optimize_recipe(recipe)
867867
plt.close("all")
868868
# set new defaults
@@ -890,7 +890,7 @@ def test_plot_recipe_set_defaults(build_recipe_one_contribution):
890890
def test_plot_recipe_set_defaults_bad(capsys, build_recipe_one_contribution):
891891
# Case: user tries to set kwargs that are not valid plot_recipe options
892892
# Expected: Plot is shown and warning is printed
893-
recipe = build_recipe_one_contribution
893+
recipe, _ = build_recipe_one_contribution
894894
optimize_recipe(recipe)
895895
plt.close("all")
896896
recipe.set_plot_defaults(
@@ -1000,7 +1000,7 @@ def test_plot_recipe_reset_all_defaults(build_recipe_one_contribution):
10001000
"show": True,
10011001
}
10021002

1003-
recipe = build_recipe_one_contribution
1003+
recipe, _ = build_recipe_one_contribution
10041004
optimize_recipe(recipe)
10051005
plt.close("all")
10061006

tests/test_fitresults.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def optimize_recipe(recipe):
5454

5555

5656
def test_formatResults(build_recipe_one_contribution):
57-
recipe = build_recipe_one_contribution
57+
recipe, _ = build_recipe_one_contribution
5858
optimize_recipe(recipe)
5959
results = FitResults(recipe)
6060
actual_results_string = results.formatResults(header="My Custom header")
@@ -67,7 +67,7 @@ def test_formatResults(build_recipe_one_contribution):
6767

6868

6969
def test_get_results_string(build_recipe_one_contribution):
70-
recipe = build_recipe_one_contribution
70+
recipe, _ = build_recipe_one_contribution
7171
optimize_recipe(recipe)
7272
results = FitResults(recipe)
7373
actual_results_string = results.get_results_string(
@@ -82,7 +82,7 @@ def test_get_results_string(build_recipe_one_contribution):
8282

8383

8484
def test_printResults(build_recipe_one_contribution, capsys):
85-
recipe = build_recipe_one_contribution
85+
recipe, _ = build_recipe_one_contribution
8686
optimize_recipe(recipe)
8787
results = FitResults(recipe)
8888
results.printResults(header="My Custom header")
@@ -96,7 +96,7 @@ def test_printResults(build_recipe_one_contribution, capsys):
9696

9797

9898
def test_print_results(build_recipe_one_contribution, capsys):
99-
recipe = build_recipe_one_contribution
99+
recipe, _ = build_recipe_one_contribution
100100
optimize_recipe(recipe)
101101
results = FitResults(recipe)
102102
results.print_results(header="My Custom header")
@@ -110,7 +110,7 @@ def test_print_results(build_recipe_one_contribution, capsys):
110110

111111

112112
def test_saveResults(build_recipe_one_contribution, tmp_path):
113-
recipe = build_recipe_one_contribution
113+
recipe, _ = build_recipe_one_contribution
114114
optimize_recipe(recipe)
115115
results = FitResults(recipe)
116116
actual_results_file = tmp_path / "fit_results.txt"
@@ -127,7 +127,7 @@ def test_saveResults(build_recipe_one_contribution, tmp_path):
127127

128128

129129
def test_save_results(build_recipe_one_contribution, tmp_path):
130-
recipe = build_recipe_one_contribution
130+
recipe, _ = build_recipe_one_contribution
131131
optimize_recipe(recipe)
132132
results = FitResults(recipe)
133133
actual_results_file = tmp_path / "fit_results.txt"
@@ -146,7 +146,7 @@ def test_save_results(build_recipe_one_contribution, tmp_path):
146146
def test_get_results_dictionary(build_recipe_one_contribution):
147147
# Case: user gets results dictionary after optimization
148148
# expected: results dictionary contains expected keys and values
149-
recipe = build_recipe_one_contribution
149+
recipe, _ = build_recipe_one_contribution
150150
optimize_recipe(recipe)
151151
results = FitResults(recipe)
152152
actual_results_dict = results.get_results_dictionary()

0 commit comments

Comments
 (0)