-
Notifications
You must be signed in to change notification settings - Fork 191
/
perftest.js
125 lines (84 loc) · 3.11 KB
/
perftest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//Test rendering performance for different sized pdb's
var profile = QUnit.urlParams.profilecheck;
var resultXML = null;
var resultStr = "";
//QUnit-reporter hook to output test results in XML format
QUnit.jUnitReport = function(data) {
resultXML = $.parseXML(data.xml);
//Wrap XML result in JQuery object; parse and setup output string
$result = $(resultXML);
resultStr = "JSmol Performance Tests\n";
var runTime = $result.find("testsuites").attr("time");
var runDate = $result.find("testsuites").attr("timestamp");
resultStr += "Total Test Time: " + runTime + " s\n";
resultStr += "Date: " + runDate + "\n\n";
var test = $result.find("testsuite").first();
var moduleName = test.attr("name");
var moduleTime = test.attr("time");
resultStr += "\n" + moduleName;
//alert(moduleName);
test.find("testcase").each(function() {
var testName = $(this).attr("name");
var testTime = $(this).attr("time");
resultStr += "\n\t" + testName + ": " + testTime + " s";
//alert(testName);
});
resultStr += "\n\tTotal: " + moduleTime + " s\n";
//Set up a link to download test results
$("#qunit-testresult").append("<br><a id='download'>Download</a>");
var url = "data:text/plain;charset=utf-8," + encodeURIComponent(resultStr);
$("#download").attr("download", "webgltest.log");
$("#download").attr("href", url);
//alert(resultStr);
};
var styleSpec = ["line", "stick", "sphere", "cartoon"];
//Generic style render testcase
var testcase = function(styleType, profile) {
var testName = styleType + " render";
var timeName = styleType + " render time: ";
var testMsg = styleType + " style set correctly";
var script = "select *;";
if (styleType === "line") {
script += "wireframe;";
}
else if (styleType === "stick") {
script += "wireframe 100;";
}
else if (styleType === "sphere") {
script += "spacefill;";
}
else if (styleType === "cartoon")
script += "cartoon only;";
window["endTime"] = function(a, b, c, d) {
console.log(a);
console.log(b);
};
QUnit.test(testName, function() {
console.group(testName);
console.time(timeName);
if (profile)
console.profile();
var arr = Jmol.scriptWait(viewer, script);
while ((arr.length < 3))
continue;
if (profile)
console.profileEnd();
console.timeEnd(timeName);
console.groupEnd();
ok(true, testMsg);
});
};
QUnit.module( "C. Calicivirus Capsid, 12,362 atoms (3M8L)", {
setupOnce: function() {
console.group("Capsid (12,362 atoms)");
},
teardownOnce: function() {
console.groupEnd();
//glviewer.removeAllModels();
},
setup: function() {
Jmol.scriptWait(viewer, "wireframe -0.1; spacefill off; cartoon off; set cartoonFancy true;");
}
});
for (var style in styleSpec)
testcase(styleSpec[style], profile);