OLD | NEW |
| (Empty) |
1 #!/usr/bin/env python | |
2 # Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | |
3 # | |
4 # Use of this source code is governed by a BSD-style license | |
5 # that can be found in the LICENSE file in the root of the source | |
6 # tree. An additional intellectual property rights grant can be found | |
7 # in the file PATENTS. All contributing project authors may | |
8 # be found in the AUTHORS file in the root of the source tree. | |
9 | |
10 import unittest | |
11 import webrtc.data_helper | |
12 | |
13 class Test(unittest.TestCase): | |
14 | |
15 def setUp(self): | |
16 # Simulate frame data from two different test runs, with 2 frames each. | |
17 self.frame_data_0 = [{'frame_number': 0, 'ssim': 0.5, 'psnr': 30.5}, | |
18 {'frame_number': 1, 'ssim': 0.55, 'psnr': 30.55}] | |
19 self.frame_data_1 = [{'frame_number': 0, 'ssim': 0.6, 'psnr': 30.6}, | |
20 {'frame_number': 0, 'ssim': 0.66, 'psnr': 30.66}] | |
21 self.all_data = [self.frame_data_0, self.frame_data_1] | |
22 | |
23 # Test with frame_number column in a non-first position sice we need to | |
24 # support reordering that to be able to use the gviz_api as we want. | |
25 self.type_description = { | |
26 'ssim': ('number', 'SSIM'), | |
27 'frame_number': ('number', 'Frame number'), | |
28 'psnr': ('number', 'PSRN'), | |
29 } | |
30 self.names = ["Test 0", "Test 1"] | |
31 self.configurations = [ | |
32 [{'name': 'name', 'value': 'Test 0'}, | |
33 {'name': 'test_number', 'value': '13'}, | |
34 {'name': 'input_filename', 'value': 'foreman_cif.yuv'}, | |
35 ], | |
36 [{'name': 'name', 'value': 'Test 1'}, | |
37 {'name': 'test_number', 'value': '5'}, | |
38 {'name': 'input_filename', 'value': 'foreman_cif.yuv'}, | |
39 ], | |
40 ] | |
41 | |
42 def testCreateData(self): | |
43 messages = [] | |
44 helper = webrtc.data_helper.DataHelper(self.all_data, self.type_description, | |
45 self.names, messages) | |
46 description, data_table = helper.CreateData('ssim') | |
47 self.assertEqual(3, len(description)) | |
48 self.assertTrue('frame_number' in description) | |
49 self.assertTrue('ssim_0' in description) | |
50 self.assertTrue('number' in description['ssim_0'][0]) | |
51 self.assertTrue('Test 0' in description['ssim_0'][1]) | |
52 self.assertTrue('ssim_1' in description) | |
53 self.assertTrue('number' in description['ssim_1'][0]) | |
54 self.assertTrue('Test 1' in description['ssim_1'][1]) | |
55 | |
56 self.assertEqual(0, len(messages)) | |
57 | |
58 self.assertEquals(2, len(data_table)) | |
59 row = data_table[0] | |
60 self.assertEquals(0, row['frame_number']) | |
61 self.assertEquals(0.5, row['ssim_0']) | |
62 self.assertEquals(0.6, row['ssim_1']) | |
63 row = data_table[1] | |
64 self.assertEquals(1, row['frame_number']) | |
65 self.assertEquals(0.55, row['ssim_0']) | |
66 self.assertEquals(0.66, row['ssim_1']) | |
67 | |
68 description, data_table = helper.CreateData('psnr') | |
69 self.assertEqual(3, len(description)) | |
70 self.assertTrue('frame_number' in description) | |
71 self.assertTrue('psnr_0' in description) | |
72 self.assertTrue('psnr_1' in description) | |
73 self.assertEqual(0, len(messages)) | |
74 | |
75 self.assertEquals(2, len(data_table)) | |
76 row = data_table[0] | |
77 self.assertEquals(0, row['frame_number']) | |
78 self.assertEquals(30.5, row['psnr_0']) | |
79 self.assertEquals(30.6, row['psnr_1']) | |
80 row = data_table[1] | |
81 self.assertEquals(1, row['frame_number']) | |
82 self.assertEquals(30.55, row['psnr_0']) | |
83 self.assertEquals(30.66, row['psnr_1']) | |
84 | |
85 def testGetOrdering(self): | |
86 """ Tests that the ordering help method returns a list with frame_number | |
87 first and the rest sorted alphabetically """ | |
88 messages = [] | |
89 helper = webrtc.data_helper.DataHelper(self.all_data, self.type_description, | |
90 self.names, messages) | |
91 description, _ = helper.CreateData('ssim') | |
92 columns = helper.GetOrdering(description) | |
93 self.assertEqual(3, len(columns)) | |
94 self.assertEqual(0, len(messages)) | |
95 self.assertEqual('frame_number', columns[0]) | |
96 self.assertEqual('ssim_0', columns[1]) | |
97 self.assertEqual('ssim_1', columns[2]) | |
98 | |
99 def testCreateConfigurationTable(self): | |
100 messages = [] | |
101 helper = webrtc.data_helper.DataHelper(self.all_data, self.type_description, | |
102 self.names, messages) | |
103 description, data = helper.CreateConfigurationTable(self.configurations) | |
104 self.assertEqual(3, len(description)) # 3 columns | |
105 self.assertEqual(2, len(data)) # 2 data sets | |
106 self.assertTrue(description.has_key('name')) | |
107 self.assertTrue(description.has_key('test_number')) | |
108 self.assertTrue(description.has_key('input_filename')) | |
109 self.assertEquals('Test 0', data[0]['name']) | |
110 self.assertEquals('Test 1', data[1]['name']) | |
111 | |
112 if __name__ == "__main__": | |
113 unittest.main() | |
OLD | NEW |