visualization_test.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # -*- coding: utf-8 -*-
  2. """Tests for dragnn.python.visualization."""
  3. from __future__ import absolute_import
  4. from __future__ import division
  5. from __future__ import print_function
  6. from tensorflow.python.platform import googletest
  7. from dragnn.protos import spec_pb2
  8. from dragnn.protos import trace_pb2
  9. from dragnn.python import visualization
  10. def _get_trace_proto_string():
  11. trace = trace_pb2.MasterTrace()
  12. trace.component_trace.add(
  13. step_trace=[
  14. trace_pb2.ComponentStepTrace(fixed_feature_trace=[]),
  15. ],
  16. # Google Translate says this is "component" in Chinese. (To test UTF-8).
  17. name='零件',)
  18. return trace.SerializeToString()
  19. def _get_master_spec():
  20. return spec_pb2.MasterSpec(
  21. component=[spec_pb2.ComponentSpec(name='jalapeño')])
  22. class VisualizationTest(googletest.TestCase):
  23. def testCanFindScript(self):
  24. script = visualization._load_viz_script()
  25. self.assertIsInstance(script, str)
  26. self.assertTrue(10e3 < len(script) < 10e6,
  27. 'Script size should be between 10k and 10M')
  28. def testSampleTraceSerialization(self):
  29. json = visualization.parse_trace_json(_get_trace_proto_string())
  30. self.assertIsInstance(json, str)
  31. self.assertTrue('component_trace' in json)
  32. def testInteractiveVisualization(self):
  33. widget = visualization.InteractiveVisualization()
  34. widget.initial_html()
  35. widget.show_trace(_get_trace_proto_string())
  36. def testMasterSpecJson(self):
  37. visualization.trace_html(
  38. _get_trace_proto_string(), master_spec=_get_master_spec())
  39. widget = visualization.InteractiveVisualization()
  40. widget.initial_html()
  41. widget.show_trace(_get_trace_proto_string(), master_spec=_get_master_spec())
  42. if __name__ == '__main__':
  43. googletest.main()