@@ -503,3 +503,49 @@ def test_keyrepeat(self) -> None:
503503 slider_off .update ([])
504504 self .assertGreater (slider_on .get_value (), 0.1 )
505505 self .assertEqual (slider_off .get_value (), 0.1 )
506+
507+ def test_set_default_value (self ) -> None :
508+ """
509+ Test set_default_value method for RangeSlider.
510+ This specifically checks the fix for ensuring _default_value is always a tuple/list.
511+ """
512+ # Test with a single slider (float default)
513+ slider_single = pygame_menu .widgets .RangeSlider ('Single' , default_value = 0.5 , range_values = (0 , 1 ), increment = 0.1 )
514+ self .assertEqual (slider_single ._default_value , [0.5 ])
515+ self .assertEqual (slider_single .get_value (), 0.5 )
516+
517+ # Change value and reset
518+ slider_single .set_value (0.8 )
519+ self .assertEqual (slider_single .get_value (), 0.8 )
520+ slider_single .reset_value ()
521+ self .assertEqual (slider_single .get_value (), 0.5 )
522+
523+ # Test with a double slider (tuple default)
524+ slider_double = pygame_menu .widgets .RangeSlider ('Double' , default_value = (0.2 , 0.7 ), range_values = (0 , 1 ), increment = 0.1 )
525+ self .assertEqual (slider_double ._default_value , [0.2 , 0.7 ])
526+ self .assertEqual (slider_double .get_value (), (0.2 , 0.7 ))
527+
528+ # Change values and reset
529+ slider_double .set_value ((0.3 , 0.9 ))
530+ self .assertEqual (slider_double .get_value (), (0.3 , 0.9 ))
531+ slider_double .reset_value ()
532+ self .assertEqual (slider_double .get_value (), (0.2 , 0.7 ))
533+
534+ # Test setting a new default value after initialization
535+ slider_single .set_default_value (0.3 )
536+ self .assertEqual (slider_single ._default_value , [0.3 ])
537+ slider_single .reset_value ()
538+ self .assertEqual (slider_single .get_value (), 0.3 )
539+
540+ slider_double .set_default_value ((0.1 , 0.4 ))
541+ self .assertEqual (slider_double ._default_value , [0.1 , 0.4 ])
542+ slider_double .reset_value ()
543+ self .assertEqual (slider_double .get_value (), (0.1 , 0.4 ))
544+
545+ # Test invalid default value types for single slider
546+ self .assertRaises (AssertionError , lambda : slider_single .set_default_value ([0.1 , 0.2 ]))
547+ self .assertRaises (AssertionError , lambda : slider_single .set_default_value ('invalid' ))
548+
549+ # Test invalid default value types for double slider
550+ self .assertRaises (AssertionError , lambda : slider_double .set_default_value (0.5 ))
551+ self .assertRaises (AssertionError , lambda : slider_double .set_default_value ((0.1 , 0.2 , 0.3 )))
0 commit comments