1# Copyright 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import unittest
6
7from telemetry.core import camel_case
8
9
10class CamelCaseTest(unittest.TestCase):
11  def testString(self):
12    self.assertEqual(camel_case.ToUnderscore('camelCase'), 'camel_case')
13    self.assertEqual(camel_case.ToUnderscore('CamelCase'), 'camel_case')
14    self.assertEqual(camel_case.ToUnderscore('Camel2Case'), 'camel2_case')
15    self.assertEqual(camel_case.ToUnderscore('Camel2Case2'), 'camel2_case2')
16    self.assertEqual(camel_case.ToUnderscore('2012Q3'), '2012_q3')
17
18  def testList(self):
19    camel_case_list = ['CamelCase', ['NestedList']]
20    underscore_list = ['camel_case', ['nested_list']]
21    self.assertEqual(camel_case.ToUnderscore(camel_case_list), underscore_list)
22
23  def testDict(self):
24    camel_case_dict = {
25      'gpu': {
26        'vendorId': 1000,
27        'deviceId': 2000,
28        'vendorString': 'aString',
29        'deviceString': 'bString' },
30      'secondaryGpus': [
31        { 'vendorId': 3000, 'deviceId': 4000,
32          'vendorString': 'k', 'deviceString': 'l' }
33      ]
34    }
35    underscore_dict = {
36      'gpu': {
37        'vendor_id': 1000,
38        'device_id': 2000,
39        'vendor_string': 'aString',
40        'device_string': 'bString' },
41      'secondary_gpus': [
42        { 'vendor_id': 3000, 'device_id': 4000,
43          'vendor_string': 'k', 'device_string': 'l' }
44      ]
45    }
46    self.assertEqual(camel_case.ToUnderscore(camel_case_dict), underscore_dict)
47
48  def testOther(self):
49    self.assertEqual(camel_case.ToUnderscore(self), self)
50