2019-02-28 08:43:20 +08:00
|
|
|
import unittest
|
|
|
|
import os
|
|
|
|
from gradio import inputs
|
|
|
|
|
|
|
|
BASE64_IMG = "data:image/jpeg;base64,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
|
2019-07-22 09:46:00 +08:00
|
|
|
BASE64_SKETCH = "data:image/png;base64,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
|
2019-02-28 08:43:20 +08:00
|
|
|
RAND_STRING = "2wBDAAYEBQYFBAYGBQYHBwYIC"
|
|
|
|
PACKAGE_NAME = 'gradio'
|
|
|
|
|
|
|
|
|
|
|
|
class TestSketchpad(unittest.TestCase):
|
2019-06-19 04:13:50 +08:00
|
|
|
def test_path_exists(self):
|
|
|
|
inp = inputs.Sketchpad()
|
|
|
|
path = inputs.BASE_INPUT_INTERFACE_JS_PATH.format(inp.get_name())
|
2019-06-20 03:03:54 +08:00
|
|
|
self.assertTrue(os.path.exists(os.path.join(PACKAGE_NAME, path)))
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
def test_preprocessing(self):
|
|
|
|
inp = inputs.Sketchpad()
|
2019-07-22 09:46:00 +08:00
|
|
|
array = inp.preprocess(BASE64_SKETCH)
|
2019-03-10 10:05:30 +08:00
|
|
|
self.assertEqual(array.shape, (1, 28, 28))
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
class TestWebcam(unittest.TestCase):
|
|
|
|
def test_path_exists(self):
|
|
|
|
inp = inputs.Webcam()
|
2019-06-19 04:13:50 +08:00
|
|
|
path = inputs.BASE_INPUT_INTERFACE_JS_PATH.format(inp.get_name())
|
2019-06-20 03:03:54 +08:00
|
|
|
self.assertFalse(os.path.exists(os.path.join(PACKAGE_NAME, path))) # Note implemented yet.
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
def test_preprocessing(self):
|
|
|
|
inp = inputs.Webcam()
|
2019-02-28 13:39:18 +08:00
|
|
|
array = inp.preprocess(BASE64_IMG)
|
2019-03-06 14:51:36 +08:00
|
|
|
self.assertEqual(array.shape, (1, 224, 224, 3))
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
class TestTextbox(unittest.TestCase):
|
2019-06-19 04:13:50 +08:00
|
|
|
def test_path_exists(self):
|
|
|
|
inp = inputs.Textbox()
|
|
|
|
path = inputs.BASE_INPUT_INTERFACE_JS_PATH.format(inp.get_name())
|
2019-06-20 03:03:54 +08:00
|
|
|
self.assertTrue(os.path.exists(os.path.join(PACKAGE_NAME, path)))
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
def test_preprocessing(self):
|
|
|
|
inp = inputs.Textbox()
|
2019-02-28 13:39:18 +08:00
|
|
|
string = inp.preprocess(RAND_STRING)
|
2019-02-28 08:43:20 +08:00
|
|
|
self.assertEqual(string, RAND_STRING)
|
|
|
|
|
|
|
|
|
|
|
|
class TestImageUpload(unittest.TestCase):
|
2019-06-19 04:13:50 +08:00
|
|
|
def test_path_exists(self):
|
|
|
|
inp = inputs.ImageUpload()
|
|
|
|
path = inputs.BASE_INPUT_INTERFACE_JS_PATH.format(inp.get_name())
|
2019-06-20 03:03:54 +08:00
|
|
|
self.assertTrue(os.path.exists(os.path.join(PACKAGE_NAME, path)))
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
def test_preprocessing(self):
|
|
|
|
inp = inputs.ImageUpload()
|
2019-02-28 13:39:18 +08:00
|
|
|
array = inp.preprocess(BASE64_IMG)
|
2019-03-06 14:51:36 +08:00
|
|
|
self.assertEqual(array.shape, (1, 224, 224, 3))
|
|
|
|
|
2019-06-19 04:13:50 +08:00
|
|
|
def test_preprocessing(self):
|
|
|
|
inp = inputs.ImageUpload()
|
|
|
|
inp.image_height = 48
|
|
|
|
inp.image_width = 48
|
|
|
|
array = inp.preprocess(BASE64_IMG)
|
|
|
|
self.assertEqual(array.shape, (1, 48, 48, 3))
|
2019-02-28 08:43:20 +08:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2019-06-19 04:13:50 +08:00
|
|
|
unittest.main()
|