@@ -634,34 +634,27 @@ def test_predictions_to_metrics():
634
634
"""
635
635
with patch ("sasctl.pzmm.ScoreCode._no_targets_no_thresholds" ) as func :
636
636
metrics = ["Classification" ]
637
- sc ._predictions_to_metrics (metrics )
638
- func .assert_called_once_with ("Classification" , False )
637
+ returns = [1 ]
638
+ sc ._predictions_to_metrics (metrics , returns )
639
+ func .assert_called_once_with ("Classification" , returns , False )
639
640
640
641
with patch ("sasctl.pzmm.ScoreCode._nonbinary_targets" ) as func :
641
642
target_values = ["A" , "B" , 5 ]
642
- sc ._predictions_to_metrics (metrics , target_values )
643
- func .assert_called_once_with ("Classification" , target_values , False )
643
+ sc ._predictions_to_metrics (metrics , returns , target_values )
644
+ func .assert_called_once_with ("Classification" , target_values , returns , False )
644
645
645
646
with patch ("sasctl.pzmm.ScoreCode._binary_target" ) as func :
646
647
metrics = ["Classification" , "Probability" ]
647
- target_values = ["1" ]
648
- sc ._predictions_to_metrics (metrics , target_values )
649
- func .assert_called_once_with (metrics , None , False )
650
-
651
- with pytest .raises (
652
- ValueError ,
653
- match = "For non-binary target variables, please provide at least two target "
654
- "values." ,
655
- ):
656
- target_values = ["2" ]
657
- sc ._predictions_to_metrics (metrics , target_values )
648
+ target_values = ["1" , "0" ]
649
+ sc ._predictions_to_metrics (metrics , returns , target_values )
650
+ func .assert_called_once_with (metrics , ["1" , "0" ], returns , None , False )
658
651
659
652
with pytest .raises (
660
653
ValueError ,
661
654
match = "A threshold was provided to interpret the prediction results, however "
662
655
"a target value was not, therefore, a valid output cannot be generated." ,
663
656
):
664
- sc ._predictions_to_metrics (metrics , predict_threshold = 0.7 )
657
+ sc ._predictions_to_metrics (metrics , returns , predict_threshold = 0.7 )
665
658
666
659
667
660
def test_input_var_lists ():
@@ -692,6 +685,7 @@ def test_check_viya_version(mock_version, mock_get_model):
692
685
- Viya 4
693
686
- No connection
694
687
"""
688
+ current_session (None )
695
689
mock_version .return_value = None
696
690
model = {"name" : "Test" , "id" : "abc123" }
697
691
with pytest .warns ():
@@ -744,29 +738,28 @@ def test_write_score_code(score_code_mocks):
744
738
score_code_mocks ["_viya35_score_code_import" ].return_value = ("MAS" , "CAS" )
745
739
score_code_mocks ["_check_valid_model_prefix" ].return_value = "TestModel"
746
740
741
+ # No binary string or model file provided
747
742
with pytest .raises (ValueError ):
748
743
sc .write_score_code (
749
744
"TestModel" ,
750
745
pd .DataFrame (data = [["A" , 1 ], ["B" , 2 ]], columns = ["First" , "Second" ]),
751
- predict_proba ,
752
- ["C" , "P" ],
746
+ [predict_proba , []],
753
747
)
754
748
749
+ # Binary string and model file provided
755
750
with pytest .raises (ValueError ):
756
751
sc .write_score_code (
757
752
"TestModel" ,
758
753
pd .DataFrame (data = [["A" , 1 ], ["B" , 2 ]], columns = ["First" , "Second" ]),
759
- predict_proba ,
760
- ["C" , "P" ],
754
+ [predict_proba , []],
761
755
model_file_name = "model.pickle" ,
762
756
binary_string = b"Binary model string." ,
763
757
)
764
758
765
759
sc .write_score_code (
766
760
"TestModel" ,
767
761
pd .DataFrame (data = [["A" , 1 ], ["B" , 2 ]], columns = ["First" , "Second" ]),
768
- predict_proba ,
769
- ["C" , "P" ],
762
+ [predict_proba , []],
770
763
model_file_name = "model.pickle" ,
771
764
)
772
765
score_code_mocks ["_viya4_model_load" ].assert_called_once ()
@@ -775,17 +768,15 @@ def test_write_score_code(score_code_mocks):
775
768
sc .write_score_code (
776
769
"TestModel" ,
777
770
pd .DataFrame (data = [["A" , 1 ], ["B" , 2 ]], columns = ["First" , "Second" ]),
778
- predict_proba ,
779
- ["C" , "P" ],
771
+ [predict_proba , []],
780
772
model_file_name = "model.pickle" ,
781
773
)
782
774
score_code_mocks ["_viya35_model_load" ].assert_called_once ()
783
775
784
776
output_dict = sc .write_score_code (
785
777
"TestModel" ,
786
778
pd .DataFrame (data = [["A" , 1 ], ["B" , 2 ]], columns = ["First" , "Second" ]),
787
- predict_proba ,
788
- ["C" , "P" ],
779
+ [predict_proba , []],
789
780
binary_string = b"Binary model string." ,
790
781
)
791
782
assert "TestModel_score.py" in output_dict
@@ -796,8 +787,7 @@ def test_write_score_code(score_code_mocks):
796
787
sc .write_score_code (
797
788
"TestModel" ,
798
789
pd .DataFrame (data = [["A" , 1 ], ["B" , 2 ]], columns = ["First" , "Second" ]),
799
- predict_proba ,
800
- ["C" , "P" ],
790
+ [predict_proba , []],
801
791
score_code_path = Path (tmp_dir .name ),
802
792
binary_string = b"Binary model string." ,
803
793
)
0 commit comments