diff --git a/IPython/html/widgets/tests/test_interaction.py b/IPython/html/widgets/tests/test_interaction.py index c5fe40d..b525e97 100644 --- a/IPython/html/widgets/tests/test_interaction.py +++ b/IPython/html/widgets/tests/test_interaction.py @@ -220,6 +220,84 @@ def test_list_tuple_3_float(): ) check_widgets(c, tup=d, lis=d) +def test_list_tuple_4_int(): + with nt.assert_raises(ValueError): + c = interactive(f, tup=(4, 3, 2, 1)) + with nt.assert_raises(ValueError): + c = interactive(f, tup=(1, 2, 3, 2)) + with nt.assert_raises(ValueError): + c = interactive(f, tup=(2, 1, 3, 4)) + for min, low, high, max in [(0, 1, 2, 3), (0, 0, 0, 0), (1, 2, 2, 3), (-2, -1, 1, 2)]: + c = interactive(f, tup=(min, low, high, max), lis=[min, low, high, max]) + nt.assert_equal(len(c.children), 2) + d = dict( + cls=widgets.IntRangeSliderWidget, + min=min, + max=max, + value=(low, high), + range=True, + readout=True + ) + check_widgets(c, tup=d, lis=d) + +def test_list_tuple_5_int(): + with nt.assert_raises(ValueError): + c = interactive(f, tup=(1, 2, 3, 4, 0)) + with nt.assert_raises(ValueError): + c = interactive(f, tup=(1, 2, 3, 4, -1)) + for min, low, high, max, step in [(0, 1, 2, 3, 1), (0, 0, 0, 0, 1), (1, 2, 2, 3, 2), (-2, -1, 1, 2, 3)]: + c = interactive(f, tup=(min, low, high, max, step), lis=[min, low, high, max, step]) + nt.assert_equal(len(c.children), 2) + d = dict( + cls=widgets.IntRangeSliderWidget, + min=min, + max=max, + value=(low, high), + step=step, + range=True, + readout=True + ) + check_widgets(c, tup=d, lis=d) + +def test_list_tuple_4_float(): + with nt.assert_raises(ValueError): + c = interactive(f, tup=(4, 3., 2, 1)) + with nt.assert_raises(ValueError): + c = interactive(f, tup=(1, 2, 3, 2.)) + with nt.assert_raises(ValueError): + c = interactive(f, tup=(2, 1., 3, 4)) + for min, low, high, max in [(0, 1., 2, 3), (0, 0, 0., 0), (1., 2., 2., 3.1415), (-2.5, -1, 1, 2.5)]: + c = interactive(f, tup=(min, low, high, max), lis=[min, low, high, max]) + nt.assert_equal(len(c.children), 2) + d = dict( + cls=widgets.FloatRangeSliderWidget, + min=min, + max=max, + value=(low, high), + range=True, + readout=True + ) + check_widgets(c, tup=d, lis=d) + +def test_list_tuple_5_float(): + with nt.assert_raises(ValueError): + c = interactive(f, tup=(1, 2., 3., 4, 0)) + with nt.assert_raises(ValueError): + c = interactive(f, tup=(1, 2, 3., 4., -0.5)) + for min, low, high, max, step in [(0, 1, 2, 3, 0.01), (0, 0, 0, 0, 0.1), (1, 2, 2, 3, 2.718), (-2, -1.5, 1.5, 2, 2)]: + c = interactive(f, tup=(min, low, high, max, step), lis=[min, low, high, max, step]) + nt.assert_equal(len(c.children), 2) + d = dict( + cls=widgets.FloatRangeSliderWidget, + min=min, + max=max, + value=(low, high), + step=step, + range=True, + readout=True + ) + check_widgets(c, tup=d, lis=d) + def test_list_tuple_str(): values = ['hello', 'there', 'guy'] first = values[0]