|
1 | 1 | from rdtools import TrendAnalysis, normalization, filtering |
2 | 2 | from conftest import assert_isinstance, assert_warnings |
| 3 | +from rdtools.analysis_chains import ValidatedFilterDict |
3 | 4 | import pytest |
4 | 5 | import pvlib |
5 | 6 | import pandas as pd |
@@ -740,3 +741,45 @@ def test_plot_degradation_timeseries(sensor_analysis, clearsky_analysis): |
740 | 741 | assert_isinstance( |
741 | 742 | clearsky_analysis.plot_degradation_timeseries("clearsky"), plt.Figure |
742 | 743 | ) |
| 744 | + |
| 745 | + |
| 746 | +def test_validated_filter_dict_initialization(): |
| 747 | + valid_keys = ["key1", "key2"] |
| 748 | + filter_dict = ValidatedFilterDict(valid_keys, key1="value1", key2="value2") |
| 749 | + assert filter_dict["key1"] == "value1" |
| 750 | + assert filter_dict["key2"] == "value2" |
| 751 | + |
| 752 | + |
| 753 | +def test_validated_filter_dict_invalid_key_initialization(): |
| 754 | + valid_keys = ["key1", "key2"] |
| 755 | + with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."): |
| 756 | + ValidatedFilterDict(valid_keys, key1="value1", key3="value3") |
| 757 | + |
| 758 | + |
| 759 | +def test_validated_filter_dict_setitem(): |
| 760 | + valid_keys = ["key1", "key2"] |
| 761 | + filter_dict = ValidatedFilterDict(valid_keys) |
| 762 | + filter_dict["key1"] = "value1" |
| 763 | + assert filter_dict["key1"] == "value1" |
| 764 | + |
| 765 | + |
| 766 | +def test_validated_filter_dict_setitem_invalid_key(): |
| 767 | + valid_keys = ["key1", "key2"] |
| 768 | + filter_dict = ValidatedFilterDict(valid_keys) |
| 769 | + with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."): |
| 770 | + filter_dict["key3"] = "value3" |
| 771 | + |
| 772 | + |
| 773 | +def test_validated_filter_dict_update(): |
| 774 | + valid_keys = ["key1", "key2"] |
| 775 | + filter_dict = ValidatedFilterDict(valid_keys) |
| 776 | + filter_dict.update({"key1": "value1", "key2": "value2"}) |
| 777 | + assert filter_dict["key1"] == "value1" |
| 778 | + assert filter_dict["key2"] == "value2" |
| 779 | + |
| 780 | + |
| 781 | +def test_validated_filter_dict_update_invalid_key(): |
| 782 | + valid_keys = ["key1", "key2"] |
| 783 | + filter_dict = ValidatedFilterDict(valid_keys) |
| 784 | + with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."): |
| 785 | + filter_dict.update({"key1": "value1", "key3": "value3"}) |
0 commit comments