Attempt to convert all input values to numbers.

BUG=chromium:595365
TEST=manual execution of unit tests.

Change-Id: Ic9017f69ef3950d15b58f50b7a8dd8b148ea1051
Reviewed-on: https://chromium-review.googlesource.com/332987
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
diff --git a/client/common_lib/test_unittest.py b/client/common_lib/test_unittest.py
index f692dc1..d701258 100755
--- a/client/common_lib/test_unittest.py
+++ b/client/common_lib/test_unittest.py
@@ -311,54 +311,94 @@
         self.test.output_perf_value("Test", 2, units="ms", higher_is_better=True)
 
         f = open(self.test.resultsdir + "/results-chart.json")
-        expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
-                           "values": [1, 2], "improvement_direction": "up"}}}
+        expected_result = {"Test": {"summary": {"units": "ms",
+                           "type": "list_of_scalar_values", "values": [1, 2],
+                           "improvement_direction": "up"}}}
         self.assertDictEqual(expected_result, json.loads(f.read()))
 
 
     def test_output_single_perf_value_three_times(self):
         self.test.resultsdir = tempfile.mkdtemp()
 
-        self.test.output_perf_value("Test", 1, units="ms", higher_is_better=True)
+        self.test.output_perf_value("Test", 1, units="ms",
+                                    higher_is_better=True)
         self.test.output_perf_value("Test", 2, units="ms", higher_is_better=True)
         self.test.output_perf_value("Test", 3, units="ms", higher_is_better=True)
 
         f = open(self.test.resultsdir + "/results-chart.json")
-        expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
-                           "values": [1, 2, 3], "improvement_direction": "up"}}}
+        expected_result = {"Test": {"summary": {"units": "ms",
+                           "type": "list_of_scalar_values", "values": [1, 2, 3],
+                           "improvement_direction": "up"}}}
         self.assertDictEqual(expected_result, json.loads(f.read()))
 
 
     def test_output_list_perf_value(self):
         self.test.resultsdir = tempfile.mkdtemp()
 
-        self.test.output_perf_value("Test", [1, 2, 3], units="ms", higher_is_better=False)
+        self.test.output_perf_value("Test", [1, 2, 3], units="ms",
+                                    higher_is_better=False)
 
         f = open(self.test.resultsdir + "/results-chart.json")
-        expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
-                           "values": [1, 2, 3], "improvement_direction": "down"}}}
+        expected_result = {"Test": {"summary": {"units": "ms",
+                           "type": "list_of_scalar_values", "values": [1, 2, 3],
+                           "improvement_direction": "down"}}}
         self.assertDictEqual(expected_result, json.loads(f.read()))
 
 
     def test_output_single_then_list_perf_value(self):
         self.test.resultsdir = tempfile.mkdtemp()
-        self.test.output_perf_value("Test", 1, units="ms", higher_is_better=False)
-        self.test.output_perf_value("Test", [4, 3, 2], units="ms", higher_is_better=False)
+        self.test.output_perf_value("Test", 1, units="ms",
+                                    higher_is_better=False)
+        self.test.output_perf_value("Test", [4, 3, 2], units="ms",
+                                    higher_is_better=False)
         f = open(self.test.resultsdir + "/results-chart.json")
-        expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
-                           "values": [1, 4, 3, 2], "improvement_direction": "down"}}}
+        expected_result = {"Test": {"summary": {"units": "ms",
+                           "type": "list_of_scalar_values",
+                           "values": [1, 4, 3, 2],
+                           "improvement_direction": "down"}}}
         self.assertDictEqual(expected_result, json.loads(f.read()))
 
 
     def test_output_list_then_list_perf_value(self):
         self.test.resultsdir = tempfile.mkdtemp()
-        self.test.output_perf_value("Test", [1, 2, 3], units="ms", higher_is_better=False)
-        self.test.output_perf_value("Test", [4, 3, 2], units="ms", higher_is_better=False)
+        self.test.output_perf_value("Test", [1, 2, 3], units="ms",
+                                    higher_is_better=False)
+        self.test.output_perf_value("Test", [4, 3, 2], units="ms",
+                                    higher_is_better=False)
         f = open(self.test.resultsdir + "/results-chart.json")
-        expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
-                           "values": [1, 2, 3, 4, 3, 2], "improvement_direction": "down"}}}
+        expected_result = {"Test": {"summary": {"units": "ms",
+                           "type": "list_of_scalar_values",
+                           "values": [1, 2, 3, 4, 3, 2],
+                           "improvement_direction": "down"}}}
         self.assertDictEqual(expected_result, json.loads(f.read()))
 
 
+    def test_output_single_perf_value_input_string(self):
+        self.test.resultsdir = tempfile.mkdtemp()
+
+        self.test.output_perf_value("Test", u'-0.34', units="ms",
+                                    higher_is_better=True)
+
+        f = open(self.test.resultsdir + "/results-chart.json")
+        expected_result = {"Test": {"summary": {"units": "ms", "type": "scalar",
+                           "value": -0.34, "improvement_direction": "up"}}}
+        self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+    def test_output_single_perf_value_input_list_of_string(self):
+        self.test.resultsdir = tempfile.mkdtemp()
+
+        self.test.output_perf_value("Test", [0, u'-0.34', 1], units="ms",
+                                    higher_is_better=True)
+
+        f = open(self.test.resultsdir + "/results-chart.json")
+        expected_result = {"Test": {"summary": {"units": "ms",
+                           "type": "list_of_scalar_values",
+                           "values": [0, -0.34, 1],
+                           "improvement_direction": "up"}}}
+        self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+
 if __name__ == '__main__':
     unittest.main()