-
Notifications
You must be signed in to change notification settings - Fork 191
/
perftest.js
131 lines (92 loc) · 3.36 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
120
121
122
123
124
125
126
//Test rendering performance for different sized pdb's
//var glviewer = null;
$(document).ready(function() {
glviewer = $3Dmol.createViewer("gldiv", {defaultcolors: $3Dmol.rasmolElementColors, callback : function(viewer) {
viewer.setBackgroundColor(0xffffff);
}});
//starts QUnit tests
start();
});
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 = "$3Dmol 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 = {"stick":{stick:{}}, "line":{line:{}}, "cross":{cross:{}}, "sphere":{sphere:{}}, "cartoon":{cartoon:{color:"spectrum"}}};
//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 styleExpected = styleSpec[styleType];
test(testName, function() {
var m = glviewer.getModel(0);
console.group(testName);
console.time(timeName);
if (profile)
console.profile();
glviewer.setStyle({}, styleExpected);
glviewer.render();
if (profile)
console.profileEnd();
console.timeEnd(timeName);
console.groupEnd();
var styleActual = m.selectedAtoms()[0].style;
equal(JSON.stringify(styleActual), JSON.stringify(styleExpected), testMsg);
});
};
var runtests = (function(profile) {
for (var style in styleSpec)
new testcase(style, profile);
});
//test cases
//TESTS
//moldata 1
//moldata 3
QUnit.module( "C. Calicivirus Capsid, 12,362 atoms (3M8L)", {
setupOnce: function() {
console.log("Testing third molecule");
glviewer.removeAllModels();
stop();
$.get("test_structs/3M8L.pdb", function(data) {
glviewer.addModel(data, "pdb");
glviewer.zoomTo();
glviewer.render();
start();
}, "text");
console.groupEnd();
console.group("Capsid (12,362 atoms)");
},
teardownOnce: function() {
console.groupEnd();
//glviewer.removeAllModels();
}
});
runtests(profile);