|
import gradio as gr |
|
|
|
|
|
class TestNumber: |
|
def test_component_functions(self): |
|
""" |
|
Preprocess, postprocess, serialize, get_config |
|
|
|
""" |
|
numeric_input = gr.Number(elem_id="num", elem_classes="first") |
|
assert numeric_input.preprocess(3) == 3.0 |
|
assert numeric_input.preprocess(None) is None |
|
assert numeric_input.postprocess(3) == 3 |
|
assert numeric_input.postprocess(3) == 3.0 |
|
assert numeric_input.postprocess(2.14) == 2.14 |
|
assert numeric_input.postprocess(None) is None |
|
assert numeric_input.get_config() == { |
|
"value": None, |
|
"name": "number", |
|
"show_label": True, |
|
"step": 1, |
|
"label": None, |
|
"minimum": None, |
|
"maximum": None, |
|
"container": True, |
|
"min_width": 160, |
|
"scale": None, |
|
"elem_id": "num", |
|
"elem_classes": ["first"], |
|
"visible": True, |
|
"interactive": None, |
|
"proxy_url": None, |
|
"info": None, |
|
"precision": None, |
|
"_selectable": False, |
|
"key": None, |
|
} |
|
|
|
def test_component_functions_integer(self): |
|
""" |
|
Preprocess, postprocess, serialize, get_template_context |
|
|
|
""" |
|
numeric_input = gr.Number(precision=0, value=42) |
|
assert numeric_input.preprocess(3) == 3 |
|
assert numeric_input.preprocess(None) is None |
|
assert numeric_input.postprocess(3) == 3 |
|
assert numeric_input.postprocess(3) == 3 |
|
assert numeric_input.postprocess(2.85) == 3 |
|
assert numeric_input.postprocess(None) is None |
|
assert numeric_input.get_config() == { |
|
"value": 42, |
|
"name": "number", |
|
"show_label": True, |
|
"step": 1, |
|
"label": None, |
|
"minimum": None, |
|
"maximum": None, |
|
"container": True, |
|
"min_width": 160, |
|
"scale": None, |
|
"elem_id": None, |
|
"elem_classes": [], |
|
"visible": True, |
|
"interactive": None, |
|
"proxy_url": None, |
|
"info": None, |
|
"precision": 0, |
|
"_selectable": False, |
|
"key": None, |
|
} |
|
|
|
def test_component_functions_precision(self): |
|
""" |
|
Preprocess, postprocess, serialize, get_template_context |
|
|
|
""" |
|
numeric_input = gr.Number(precision=2, value=42.3428) |
|
assert numeric_input.preprocess(3.231241) == 3.23 |
|
assert numeric_input.preprocess(None) is None |
|
assert numeric_input.postprocess(-42.1241) == -42.12 |
|
assert numeric_input.postprocess(5.6784) == 5.68 |
|
assert numeric_input.postprocess(2.1421) == 2.14 |
|
assert numeric_input.postprocess(None) is None |
|
|
|
def test_precision_none_with_integer(self): |
|
""" |
|
Preprocess, postprocess |
|
""" |
|
numeric_input = gr.Number(precision=None) |
|
assert numeric_input.preprocess(5) == 5 |
|
assert isinstance(numeric_input.preprocess(5), int) |
|
assert numeric_input.postprocess(5) == 5 |
|
assert isinstance(numeric_input.postprocess(5), int) |
|
|
|
def test_precision_none_with_float(self): |
|
""" |
|
Preprocess, postprocess |
|
""" |
|
numeric_input = gr.Number(value=5.5, precision=None) |
|
assert numeric_input.preprocess(5.5) == 5.5 |
|
assert isinstance(numeric_input.preprocess(5.5), float) |
|
assert numeric_input.postprocess(5.5) == 5.5 |
|
assert isinstance(numeric_input.postprocess(5.5), float) |
|
|
|
def test_in_interface_as_input(self): |
|
""" |
|
Interface, process |
|
""" |
|
iface = gr.Interface(lambda x: x**2, "number", "textbox") |
|
assert iface(2) == "4" |
|
|
|
def test_precision_0_in_interface(self): |
|
""" |
|
Interface, process |
|
""" |
|
iface = gr.Interface(lambda x: x**2, gr.Number(precision=0), "textbox") |
|
assert iface(2) == "4" |
|
|
|
def test_in_interface_as_output(self): |
|
""" |
|
Interface, process |
|
""" |
|
iface = gr.Interface(lambda x: int(x) ** 2, "textbox", "number") |
|
assert iface(2) == 4.0 |
|
|
|
def test_static(self): |
|
""" |
|
postprocess |
|
""" |
|
component = gr.Number() |
|
assert component.get_config().get("value") is None |
|
component = gr.Number(3) |
|
assert component.get_config().get("value") == 3.0 |
|
|