Port the raw_to_bitmap_test from TF test to use TF platform googletest.

PiperOrigin-RevId: 315513067
Change-Id: Ia48c6d215008a82877edc0432f750cb9d6c5bb54
This commit is contained in:
Nick Kreeger 2020-06-09 10:40:54 -07:00 committed by TensorFlower Gardener
parent f6d4243b81
commit f4ef8b315e
2 changed files with 34 additions and 45 deletions

View File

@ -19,16 +19,15 @@ py_library(
], ],
) )
# TODO(b/158529664): Re-enable this test by removing the TF python test lib dependency. py_test(
# py_test( name = "raw_to_bitmap_test",
# name = "raw_to_bitmap_test", srcs = ["raw_to_bitmap_test.py"],
# srcs = ["raw_to_bitmap_test.py"], data = glob(["testdata/**"]),
# data = glob(["testdata/**"]), python_version = "PY3",
# python_version = "PY3", tags = ["noubsan"], # TODO(b/144512025): Fix raw_to_bitmap_test to fix ubsan failure.
# tags = ["noubsan"], # TODO(b/144512025): Fix raw_to_bitmap_test to fix ubsan failure. deps = [
# deps = [ ":raw_to_bitmap_lib",
# ":raw_to_bitmap_lib", "//tensorflow/python:platform_test",
# "//third_party/py/numpy", "//third_party/py/numpy",
# "//tensorflow/python:client_testlib", ],
# ], )
# )

View File

@ -24,7 +24,7 @@ import numpy as np
from tensorflow.lite.micro.examples.person_detection.utils.raw_to_bitmap import parse_file from tensorflow.lite.micro.examples.person_detection.utils.raw_to_bitmap import parse_file
from tensorflow.lite.micro.examples.person_detection.utils.raw_to_bitmap import reshape_bitmaps from tensorflow.lite.micro.examples.person_detection.utils.raw_to_bitmap import reshape_bitmaps
from tensorflow.python.platform import test from tensorflow.python.platform import googletest
_RGB_RAW = u""" _RGB_RAW = u"""
+++ frame +++ +++ frame +++
@ -40,8 +40,8 @@ _RGB_FLAT = np.array([[
15, 15, 15 15, 15, 15
]]) ]])
_RGB_RESHAPED = np.array( _RGB_RESHAPED = np.array([[[[12, 12, 12], [13, 13, 13], [14, 14, 14],
[[[[12, 12, 12], [13, 13, 13], [14, 14, 14], [15, 15, 15]], [15, 15, 15]],
[[8, 8, 8], [9, 9, 9], [10, 10, 10], [11, 11, 11]], [[8, 8, 8], [9, 9, 9], [10, 10, 10], [11, 11, 11]],
[[4, 4, 4], [5, 5, 5], [6, 6, 6], [7, 7, 7]], [[4, 4, 4], [5, 5, 5], [6, 6, 6], [7, 7, 7]],
[[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3]]]]) [[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3]]]])
@ -55,12 +55,9 @@ _GRAYSCALE_RAW = u"""
_GRAYSCALE_FLAT = np.array( _GRAYSCALE_FLAT = np.array(
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]]) [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]])
_GRAYSCALE_RESHAPED = np.array([[[12, 13, 14, 15], _GRAYSCALE_RESHAPED = np.array([[[12, 13, 14, 15], [8, 9, 10, 11], [4, 5, 6, 7],
[8, 9, 10, 11],
[4, 5, 6, 7],
[0, 1, 2, 3]]]) [0, 1, 2, 3]]])
_GRAYSCALE_RAW_MULTI = u""" _GRAYSCALE_RAW_MULTI = u"""
+++ frame +++ +++ frame +++
0x0000 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x0000 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
@ -80,46 +77,39 @@ _GRAYSCALE_FLAT_MULTI = [
np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]), np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
np.array([16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]), np.array([16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]),
np.array([32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47]), np.array([32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47]),
np.array([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63])] np.array([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63])
]
_GRAYSCALE_RESHAPED_MULTI = [ _GRAYSCALE_RESHAPED_MULTI = [
np.array([[12, 13, 14, 15], np.array([[12, 13, 14, 15], [8, 9, 10, 11], [4, 5, 6, 7], [0, 1, 2, 3]]),
[8, 9, 10, 11], np.array([[28, 29, 30, 31], [24, 25, 26, 27], [20, 21, 22, 23],
[4, 5, 6, 7],
[0, 1, 2, 3]]),
np.array([[28, 29, 30, 31],
[24, 25, 26, 27],
[20, 21, 22, 23],
[16, 17, 18, 19]]), [16, 17, 18, 19]]),
np.array([[44, 45, 46, 47], np.array([[44, 45, 46, 47], [40, 41, 42, 43], [36, 37, 38, 39],
[40, 41, 42, 43],
[36, 37, 38, 39],
[32, 33, 34, 35]]), [32, 33, 34, 35]]),
np.array([[60, 61, 62, 63], np.array([[60, 61, 62, 63], [56, 57, 58, 59], [52, 53, 54, 55],
[56, 57, 58, 59], [48, 49, 50, 51]])
[52, 53, 54, 55], ]
[48, 49, 50, 51]])]
class RawToBitmapTest(test.TestCase): class RawToBitmapTest(googletest.TestCase):
def testParseRgb(self): def test_parse_rgb(self):
frame_list = parse_file(io.StringIO(_RGB_RAW), 4, 4, 3) frame_list = parse_file(io.StringIO(_RGB_RAW), 4, 4, 3)
self.assertTrue(np.array_equal(_RGB_FLAT, frame_list)) self.assertTrue(np.array_equal(_RGB_FLAT, frame_list))
def testParseGrayscale(self): def test_parse_grayscale(self):
frame_list = parse_file(io.StringIO(_GRAYSCALE_RAW), 4, 4, 1) frame_list = parse_file(io.StringIO(_GRAYSCALE_RAW), 4, 4, 1)
self.assertTrue(np.array_equal(_GRAYSCALE_FLAT, frame_list)) self.assertTrue(np.array_equal(_GRAYSCALE_FLAT, frame_list))
def testReshapeRgb(self): def test_reshape_rgb(self):
reshaped = reshape_bitmaps(_RGB_FLAT, 4, 4, 3) reshaped = reshape_bitmaps(_RGB_FLAT, 4, 4, 3)
self.assertTrue(np.array_equal(_RGB_RESHAPED, reshaped)) self.assertTrue(np.array_equal(_RGB_RESHAPED, reshaped))
def testReshapeGrayscale(self): def test_reshape_grayscale(self):
reshaped = reshape_bitmaps(_GRAYSCALE_FLAT, 4, 4, 1) reshaped = reshape_bitmaps(_GRAYSCALE_FLAT, 4, 4, 1)
self.assertTrue(np.array_equal(_GRAYSCALE_RESHAPED, reshaped)) self.assertTrue(np.array_equal(_GRAYSCALE_RESHAPED, reshaped))
def testMultipleGrayscale(self): def test_multiple_grayscale(self):
frame_list = parse_file(io.StringIO(_GRAYSCALE_RAW_MULTI), 4, 4, 1) frame_list = parse_file(io.StringIO(_GRAYSCALE_RAW_MULTI), 4, 4, 1)
self.assertTrue(np.array_equal(_GRAYSCALE_FLAT_MULTI, frame_list)) self.assertTrue(np.array_equal(_GRAYSCALE_FLAT_MULTI, frame_list))
reshaped = reshape_bitmaps(frame_list, 4, 4, 1) reshaped = reshape_bitmaps(frame_list, 4, 4, 1)
@ -127,4 +117,4 @@ class RawToBitmapTest(test.TestCase):
if __name__ == '__main__': if __name__ == '__main__':
test.main() googletest.main()