Initialize Tizen 2.3
[framework/web/webkit-efl.git] / LayoutTests / inspector / utilities.html
1 <html>
2 <head>
3 <script src="../http/tests/inspector/inspector-test.js"></script>
4 <script>
5
6 function test()
7 {
8     InspectorTest.runTestSuite([
9         function binaryIndexOfTest(next)
10         {
11             var testArrays = [
12                 [],
13                 [1],
14                 [1, 10],
15                 [1, 10, 11, 12, 13, 14, 100],
16                 [-100, -50, 0, 50, 100],
17                 [-100, -14, -13, -12, -11, -10, -1]
18             ];
19      
20             function testArray(array)
21             {
22                 function comparator(a, b)
23                 {
24                     return a < b ? -1 : (a > b ? 1 : 0);
25                 }
26      
27                 for (var i = -100; i <= 100; ++i) {
28                     var reference = array.indexOf(i);
29                     var actual = array.binaryIndexOf(i, comparator);
30                     InspectorTest.assertEquals(reference, actual, "binaryIndexOf");
31                 }
32                 return true;
33             }
34      
35             for (var i = 0, l = testArrays.length; i < l; ++i)
36                 testArray(testArrays[i]);
37             next();
38         },
39
40         function qselectTest(next)
41         {
42             var testArrays = [
43                 [],
44                 [0],
45                 [0, 0, 0, 0, 0, 0, 0, 0],
46                 [4, 3, 2, 1],
47                 [1, 2, 3, 4, 5],
48                 [-1, 3, 2, 7, 7, 7, 10, 12, 3, 4, -1, 2]
49             ];
50
51             function testArray(array)
52             {
53                 function compare(a, b)
54                 {
55                     return a - b;
56                 }
57                 var sorted = array.slice(0).sort(compare);
58
59                 var reference = {
60                     min: sorted[0],
61                     median: sorted[Math.floor(sorted.length / 2)],
62                     max: sorted[sorted.length - 1]
63                 }
64
65                 var actual = {
66                     min: array.slice(0).qselect(0),
67                     median: array.slice(0).qselect(Math.floor(array.length / 2)),
68                     max: array.slice(0).qselect(array.length - 1)
69                 }
70                 InspectorTest.addResult("Array: " + JSON.stringify(array));
71                 InspectorTest.addResult("Reference: " + JSON.stringify(reference));
72                 InspectorTest.addResult("Actual:    " + JSON.stringify(actual));
73             }
74             for (var i = 0, l = testArrays.length; i < l; ++i)
75                 testArray(testArrays[i]);
76             next();
77         },
78
79         function sortRangeTest(next)
80         {
81             var testArrays = [
82                 [],
83                 [1],
84                 [2, 1],
85                 [6, 4, 2, 7, 10, 15, 1],
86                 [10, 44, 3, 6, 56, 66, 10, 55, 32, 56, 2, 5]
87             ];
88
89             function testArray(array)
90             {
91                 function comparator(a, b)
92                 {
93                     return a < b ? -1 : (a > b ? 1 : 0);
94                 }
95
96                 function compareArrays(a, b, message)
97                 {
98                     InspectorTest.assertEquals(JSON.stringify(a), JSON.stringify(b), message);
99                 }
100
101                 for (var left = 0, l = array.length - 1; left < l; ++left) {
102                      for (var right = left + 1, r = array.length; right < r; ++right)
103                           for (var count = 1, k = right - left + 1; count <= k; ++count) {
104                               var actual = array.slice(0);
105                               actual.sortRange(comparator, left, right, count);
106                               compareArrays(array.slice(0, left), actual.slice(0, left), "left " + left + " " + right + " " + count);
107                               compareArrays(array.slice(right + 1), actual.slice(right + 1), "right " + left + " " + right + " " + count);
108                               var middle = array.slice(left, right + 1);
109                               middle.sort(comparator);
110                               compareArrays(middle.slice(0, count), actual.slice(left, left + count), "sorted " + left + " " + right + " " + count);
111                               actualRest = actual.slice(left + count, right + 1);
112                               actualRest.sort(comparator);
113                               compareArrays(middle.slice(count), actualRest, "unsorted " + left + " " + right + " " + count);
114                           }
115                 }
116             }
117
118             for (var i = 0, len = testArrays.length; i < len; ++i)
119                 testArray(testArrays[i]);
120             next();
121         }
122     ]);
123 }
124
125 </script>
126 </head>
127
128 <body onload="runTest()">
129 <p>
130 This test checks Web Inspector utilities.
131 </p>
132
133 </body>
134 </html>