File: TestPyMOL.cpp

package info (click to toggle)
pymol 2.5.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 42,288 kB
  • sloc: cpp: 476,472; python: 76,538; ansic: 29,510; javascript: 6,792; sh: 47; makefile: 24
file content (462 lines) | stat: -rw-r--r-- 20,587 bytes parent folder | download
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462

/* 
A* -------------------------------------------------------------------
B* This file contains source code for the PyMOL computer program
C* Copyright (c) Schrodinger, LLC. 
D* -------------------------------------------------------------------
E* It is unlawful to modify or remove this copyright notice.
F* -------------------------------------------------------------------
G* Please see the accompanying LICENSE file for further information. 
H* -------------------------------------------------------------------
I* Additional authors of this source file include:
-* 
-* 
-*
Z* -------------------------------------------------------------------
*/


/* Module for internal C-level PyMOL tests...*/
#include"os_python.h"
#include"os_predef.h"
#include"os_std.h"
#include"Base.h"

#include"MemoryDebug.h"
#include"Feedback.h"
#include"TestPyMOL.h"

#include"ObjectCGO.h"
#include"VFont.h"
#include"ObjectGadget.h"
#include"P.h"

#include"ObjectMap.h"
#include"Executive.h"
#include"ButMode.h"
#include"Control.h"

#include"PyMOL.h"

static int TestPyMOL_00_00(PyMOLGlobals * G)
{
  ObjectMap *obj;
  ObjectMapDesc _md, *md;
  ObjectMapState *ms = NULL;

  int a;

  md = &_md;

  md->mode = cObjectMap_OrthoMinMaxGrid;

  for(a = 0; a < 3; a++) {
    md->Grid[a] = 0.1F;
    md->MinCorner[a] = 0.0F;
    md->MaxCorner[a] = a + 1.0F;
  }
  md->init_mode = -2;

  obj = new ObjectMap(G);
  if(obj) {
    ms = ObjectMapNewStateFromDesc(G, obj, md, 0, true);
    ms->Active = true;
  }
  if(obj) {
    ObjectSetName(obj, "00_00");
    ExecutiveManageObject(G, obj, -1, false);
  }
  return (obj != NULL);
}

#define STR_MAX 100

static char *get_st(const char array[][STR_MAX])
{
  char *result = NULL;
  size_t c = 0, l = 0;
  while(array[c][0]) {
    l += strlen(array[c]);
    c++;
  }
  result = pymol::malloc<char>(l + 1);

  l = 0;
  c = 0;
  while(array[c][0]) {
    strcpy(result + l, array[c]);
    l += strlen(array[c]);
    c++;
  }
  return result;
}

static const char pdb_01_01[][STR_MAX] = {
  "ATOM      1  N   ASP E   1       4.868 -17.809  25.188  1.00 34.37      E    N\n",
  "ATOM      2  CA  ASP E   1       3.984 -16.723  25.698  1.00 33.85      E    C\n",
  "ATOM      3  CB  ASP E   1       4.633 -16.020  26.888  1.00 35.91      E    C\n",
  "ATOM      4  CG  ASP E   1       6.016 -15.468  26.567  1.00 39.23      E    C\n",
  "ATOM      5  OD1 ASP E   1       6.340 -14.367  27.058  1.00 42.40      E    O\n",
  "ATOM      6  OD2 ASP E   1       6.787 -16.131  25.836  1.00 39.28      E    O\n",
  "ATOM      7  C   ASP E   1       3.789 -15.753  24.546  1.00 33.96      E    C\n",
  "ATOM      8  O   ASP E   1       4.456 -15.889  23.517  1.00 35.44      E    O\n",
  "ATOM      9  N   CYS E   2       2.908 -14.771  24.711  1.00 31.94      E    N\n",
  "ATOM     10  CA  CYS E   2       2.638 -13.825  23.633  1.00 29.67      E    C\n",
  "ATOM     11  CB  CYS E   2       1.198 -13.996  23.132  1.00 28.73      E    C\n",
  "ATOM     12  SG  CYS E   2       0.725 -15.681  22.638  1.00 25.85      E    S\n",
  "ATOM     13  C   CYS E   2       2.842 -12.366  24.012  1.00 30.31      E    C\n",
  "ATOM     14  O   CYS E   2       3.025 -12.039  25.188  1.00 30.74      E    O\n",
  "ATOM     15  N   ALA E   3       2.792 -11.504  22.996  1.00 30.15      E    N\n",
  "ATOM     16  CA  ALA E   3       2.923 -10.056  23.151  1.00 30.15      E    C\n",
  "ATOM     17  CB  ALA E   3       4.226  -9.566  22.552  1.00 30.82      E    C\n",
  "ATOM     18  C   ALA E   3       1.736  -9.418  22.436  1.00 29.90      E    C\n",
  "ATOM     19  O   ALA E   3       1.332  -9.867  21.362  1.00 28.16      E    O\n",
  "ATOM     20  N   TRP E   4       1.173  -8.377  23.038  1.00 31.77      E    N\n",
  "ATOM     21  CA  TRP E   4       0.007  -7.715  22.471  1.00 32.08      E    C\n",
  "ATOM     22  CB  TRP E   4      -1.233  -7.992  23.344  1.00 32.83      E    C\n",
  "ATOM     23  CG  TRP E   4      -1.500  -9.458  23.636  1.00 35.04      E    C\n",
  "ATOM     24  CD1 TRP E   4      -0.831 -10.264  24.528  1.00 35.36      E    C\n",
  "ATOM     25  CD2 TRP E   4      -2.507 -10.285  23.037  1.00 35.86      E    C\n",
  "ATOM     26  CE2 TRP E   4      -2.390 -11.576  23.610  1.00 34.80      E    C\n",
  "ATOM     27  CE3 TRP E   4      -3.500 -10.059  22.069  1.00 36.66      E    C\n",
  "ATOM     28  NE1 TRP E   4      -1.360 -11.535  24.514  1.00 33.13      E    N\n",
  "ATOM     29  CZ2 TRP E   4      -3.228 -12.638  23.249  1.00 36.81      E    C\n",
  "ATOM     30  CZ3 TRP E   4      -4.338 -11.120  21.706  1.00 37.35      E    C\n",
  "ATOM     31  CH2 TRP E   4      -4.194 -12.390  22.297  1.00 38.27      E    C\n",
  "ATOM     32  C   TRP E   4       0.231  -6.212  22.372  1.00 32.17      E    C\n",
  "ATOM     33  O   TRP E   4       0.752  -5.592  23.297  1.00 33.32      E    O\n",
  "ATOM     34  N   HIS E   5      -0.135  -5.634  21.235  1.00 32.18      E    N\n",
  "ATOM     35  CA  HIS E   5      -0.006  -4.205  21.043  1.00 32.91      E    C\n",
  "ATOM     36  CB  HIS E   5       0.791  -3.871  19.783  1.00 33.02      E    C\n",
  "ATOM     37  CG  HIS E   5       0.939  -2.396  19.549  1.00 32.86      E    C\n",
  "ATOM     38  CD2 HIS E   5       0.582  -1.619  18.499  1.00 31.48      E    C\n",
  "ATOM     39  ND1 HIS E   5       1.470  -1.542  20.495  1.00 29.87      E    N\n",
  "ATOM     40  CE1 HIS E   5       1.431  -0.303  20.038  1.00 29.68      E    C\n",
  "ATOM     41  NE2 HIS E   5       0.896  -0.322  18.831  1.00 29.87      E    N\n",
  "ATOM     42  C   HIS E   5      -1.408  -3.636  20.918  1.00 34.58      E    C\n",
  "ATOM     43  O   HIS E   5      -2.092  -3.870  19.914  1.00 35.87      E    O\n",
  "ATOM     44  N   LEU E   6      -1.838  -2.904  21.943  1.00 34.54      E    N\n",
  "ATOM     45  CA  LEU E   6      -3.165  -2.295  21.956  1.00 34.66      E    C\n",
  "ATOM     46  CB  LEU E   6      -3.266  -1.199  20.892  1.00 34.44      E    C\n",
  "ATOM     47  CG  LEU E   6      -2.302  -0.023  21.018  1.00 35.32      E    C\n",
  "ATOM     48  CD1 LEU E   6      -2.422   0.863  19.781  1.00 34.55      E    C\n",
  "ATOM     49  CD2 LEU E   6      -2.582   0.753  22.302  1.00 33.68      E    C\n",
  "ATOM     50  C   LEU E   6      -4.242  -3.339  21.698  1.00 36.23      E    C\n",
  "ATOM     51  O   LEU E   6      -5.181  -3.100  20.933  1.00 35.26      E    O\n",
  "ATOM     52  N   GLY E   7      -4.087  -4.506  22.315  1.00 37.53      E    N\n",
  "ATOM     53  CA  GLY E   7      -5.063  -5.564  22.138  1.00 38.95      E    C\n",
  "ATOM     54  C   GLY E   7      -4.781  -6.514  20.988  1.00 39.52      E    C\n",
  "ATOM     55  O   GLY E   7      -5.188  -7.669  21.049  1.00 42.08      E    O\n",
  "ATOM     56  N   GLU E   8      -4.092  -6.046  19.948  1.00 39.31      E    N\n",
  "ATOM     57  CA  GLU E   8      -3.771  -6.883  18.787  1.00 38.11      E    C\n",
  "ATOM     58  CB  GLU E   8      -3.361  -6.012  17.607  1.00 40.57      E    C\n",
  "ATOM     59  CG  GLU E   8      -4.472  -5.586  16.679  1.00 43.48      E    C\n",
  "ATOM     60  CD  GLU E   8      -3.920  -4.806  15.506  1.00 47.43      E    C\n",
  "ATOM     61  OE1 GLU E   8      -3.572  -5.421  14.467  1.00 44.53      E    O\n",
  "ATOM     62  OE2 GLU E   8      -3.800  -3.572  15.644  1.00 50.21      E    O\n",
  "ATOM     63  C   GLU E   8      -2.646  -7.877  19.066  1.00 35.96      E    C\n",
  "ATOM     64  O   GLU E   8      -1.643  -7.529  19.691  1.00 37.36      E    O\n",
  "ATOM     65  N   LEU E   9      -2.793  -9.104  18.579  1.00 32.21      E    N\n",
  "ATOM     66  CA  LEU E   9      -1.763 -10.108  18.791  1.00 27.94      E    C\n",
  "ATOM     67  CB  LEU E   9      -2.275 -11.515  18.478  1.00 28.00      E    C\n",
  "ATOM     68  CG  LEU E   9      -1.255 -12.643  18.693  1.00 27.79      E    C\n",
  "ATOM     69  CD1 LEU E   9      -0.819 -12.720  20.160  1.00 24.02      E    C\n",
  "ATOM     70  CD2 LEU E   9      -1.848 -13.963  18.233  1.00 26.33      E    C\n",
  "ATOM     71  C   LEU E   9      -0.569  -9.800  17.911  1.00 25.48      E    C\n",
  "ATOM     72  O   LEU E   9      -0.699  -9.660  16.692  1.00 25.09      E    O\n",
  "ATOM     73  N   VAL E  10       0.589  -9.697  18.547  1.00 22.25      E    N\n",
  "ATOM     74  CA  VAL E  10       1.835  -9.417  17.858  1.00 18.77      E    C\n",
  "ATOM     75  CB  VAL E  10       2.797  -8.578  18.759  1.00 17.44      E    C\n",
  "ATOM     76  CG1 VAL E  10       4.131  -8.351  18.068  1.00 17.34      E    C\n",
  "ATOM     77  CG2 VAL E  10       2.166  -7.248  19.110  1.00 17.12      E    C\n",
  "ATOM     78  C   VAL E  10       2.537 -10.717  17.473  1.00 19.09      E    C\n",
  "ATOM     79  O   VAL E  10       2.708 -11.019  16.296  1.00 18.92      E    O\n",
  "ATOM     80  N   TRP E  11       2.886 -11.525  18.465  1.00 19.41      E    N\n",
  "ATOM     81  CA  TRP E  11       3.622 -12.742  18.191  1.00 18.86      E    C\n",
  "ATOM     82  CB  TRP E  11       5.059 -12.338  17.887  1.00 14.44      E    C\n",
  "ATOM     83  CG  TRP E  11       5.840 -13.342  17.171  1.00 14.67      E    C\n",
  "ATOM     84  CD1 TRP E  11       6.700 -14.257  17.709  1.00 11.97      E    C\n",
  "ATOM     85  CD2 TRP E  11       5.886 -13.519  15.756  1.00 16.13      E    C\n",
  "ATOM     86  CE2 TRP E  11       6.804 -14.562  15.500  1.00 17.59      E    C\n",
  "ATOM     87  CE3 TRP E  11       5.250 -12.894  14.676  1.00 18.07      E    C\n",
  "ATOM     88  NE1 TRP E  11       7.284 -14.992  16.711  1.00 13.12      E    N\n",
  "ATOM     89  CZ2 TRP E  11       7.101 -14.995  14.196  1.00 16.12      E    C\n",
  "ATOM     90  CZ3 TRP E  11       5.548 -13.321  13.382  1.00 16.68      E    C\n",
  "ATOM     91  CH2 TRP E  11       6.466 -14.362  13.157  1.00 17.19      E    C\n",
  "ATOM     92  C   TRP E  11       3.637 -13.609  19.431  1.00 21.88      E    C\n",
  "ATOM     93  O   TRP E  11       3.449 -13.097  20.534  1.00 24.04      E    O\n",
  "ATOM     94  N   CYS E  12       3.878 -14.908  19.252  1.00 24.56      E    N\n",
  "ATOM     95  CA  CYS E  12       3.978 -15.845  20.367  1.00 27.16      E    C\n",
  "ATOM     96  CB  CYS E  12       2.709 -16.674  20.541  1.00 25.57      E    C\n",
  "ATOM     97  SG  CYS E  12       1.146 -15.762  20.653  1.00 29.62      E    S\n",
  "ATOM     98  C   CYS E  12       5.126 -16.810  20.107  1.00 30.17      E    C\n",
  "ATOM     99  O   CYS E  12       5.278 -17.322  18.998  1.00 29.17      E    O\n",
  "ATOM    100  N   THR E  13       5.959 -17.026  21.117  1.00 35.02      E    N\n",
  "ATOM    101  CA  THR E  13       7.053 -17.973  20.984  1.00 39.40      E    C\n",
  "ATOM    102  CB  THR E  13       8.289 -17.578  21.828  1.00 38.42      E    C\n",
  "ATOM    103  CG2 THR E  13       8.919 -16.310  21.286  1.00 37.78      E    C\n",
  "ATOM    104  OG1 THR E  13       7.908 -17.397  23.194  1.00 38.69      E    O\n",
  "ATOM    105  C   THR E  13       6.513 -19.322  21.459  1.00 42.05      E    C\n",
  "ATOM    106  O   THR E  13       5.962 -19.432  22.570  1.00 41.54      E    O\n",
  "ATOM    107  OXT THR E  13       6.606 -20.331  20.602  1.00 43.02      E    O\n",
  "END\n",
  ""
};

static const char mol_01_02[][STR_MAX] = {
  "MFCD02681585\n",
  "  ChemPy            3D                             0\n",
  "\n",
  " 36 39  0  0  1  0  0  0  0  0999 V2000\n",
  "   52.5122   32.1815   21.0164 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   53.1716   32.3766   20.0197 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   54.4517   31.7147   19.8169 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   54.7302   30.3758   20.0244 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   56.0228   30.0429   19.7805 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   56.5952   31.1894   19.3737 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   55.6544   32.2488   19.3610 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   58.0576   31.2220   18.9914 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   58.8985   30.2129   19.7561 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   58.1952   30.8995   17.4763 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   58.6099   32.6423   19.2418 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   53.8260   29.3227   20.4323 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   54.0916   28.8513   21.8755 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   53.2812   29.2854   22.9295 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   53.4667   28.8569   24.2265 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   52.5554   29.3273   25.3339 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   54.5278   27.9533   24.4780 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   55.3346   27.5330   23.4437 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   55.1252   27.9853   22.1551 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   52.8162   33.2369   18.9768 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   51.5459   33.8650   18.8063 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   50.7291   34.3547   19.8196 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   49.4781   34.9470   19.5308 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   48.6170   35.3669   20.6527 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   49.0272   35.8529   21.7164 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   47.3132   35.1061   20.3115 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   46.3612   35.5386   21.2706 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   49.0388   35.0753   18.1950 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   49.8568   34.5421   17.1857 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   51.0846   33.9564   17.4684 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   47.7773   35.7058   17.8640 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   46.9256   35.1276   16.8017 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   45.5301   35.6792   16.9429 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   45.5107   37.1034   16.9789 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   46.2587   37.5980   18.0839 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "   47.7345   37.1658   17.9831 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
  "  1  2  2  0  0  0  0\n",
  "  2  3  1  0  0  0  0\n",
  "  2 20  1  0  0  0  0\n",
  "  3  4  4  0  0  0  0\n",
  "  3  7  4  0  0  0  0\n",
  "  4  5  4  0  0  0  0\n",
  "  4 12  1  0  0  0  0\n",
  "  5  6  4  0  0  0  0\n",
  "  6  7  4  0  0  0  0\n",
  "  6  8  1  0  0  0  0\n",
  "  8  9  1  0  0  0  0\n",
  "  8 10  1  0  0  0  0\n",
  "  8 11  1  0  0  0  0\n",
  " 12 13  1  0  0  0  0\n",
  " 13 14  4  0  0  0  0\n",
  " 13 19  4  0  0  0  0\n",
  " 14 15  4  0  0  0  0\n",
  " 15 16  1  0  0  0  0\n",
  " 15 17  4  0  0  0  0\n",
  " 17 18  4  0  0  0  0\n",
  " 18 19  4  0  0  0  0\n",
  " 20 21  1  0  0  0  0\n",
  " 21 22  4  0  0  0  0\n",
  " 21 30  4  0  0  0  0\n",
  " 22 23  4  0  0  0  0\n",
  " 23 24  1  0  0  0  0\n",
  " 23 28  4  0  0  0  0\n",
  " 24 25  2  0  0  0  0\n",
  " 24 26  1  0  0  0  0\n",
  " 26 27  1  0  0  0  0\n",
  " 28 29  4  0  0  0  0\n",
  " 28 31  1  0  0  0  0\n",
  " 29 30  4  0  0  0  0\n",
  " 31 32  1  0  0  0  0\n",
  " 31 36  1  0  0  0  0\n",
  " 32 33  1  0  0  0  0\n",
  " 33 34  1  0  0  0  0\n",
  " 34 35  1  0  0  0  0\n",
  " 35 36  1  0  0  0  0\n",
  "M  END\n"
};

int TestPyMOLRun(PyMOLGlobals * G, int group, int test)
{
  switch (group) {
  case 0:                      /* development tests */
    switch (test) {
    case 0:
      TestPyMOL_00_00(G);
      break;
    case 1:
      PBlock(G);
      VFontLoad(G, 1, 0, 0, true);
      PUnblock(G);
      break;
    case 2:
      {
        pymol::CObject *obj = NULL;
        float pos[3] = { 0.0, 0.0, 0.0 };
        PBlock(G);
        obj = ObjectCGONewVFontTest(G, "hello", pos);
        PUnblock(G);
        if(obj) {
          ObjectSetName(obj, "hello");
          ExecutiveManageObject(G, obj, -1, false);
        }
      }
      break;
    case 3:
      {
        pymol::CObject *obj = NULL;
        obj = ObjectGadgetTest(G);
        if(obj) {
          ObjectSetName(obj, "gadget");
          ExecutiveManageObject(G, obj, -1, false);
        }
      }
      break;
    case 4:
      {
        /* try to match G3D */

        SettingSetGlobal_b(G, cSetting_ortho, 1);
        const float light[3] = { 1.0F, -1.0F, -2.5F };
        SettingSet_3fv(G->Setting, cSetting_light, light);
      }
      break;
    }
    break;
  case 1:
    /* set up for test usage as a simple viewer */

    PyMOL_SetDefaultMouse(G->PyMOL);

    switch (test) {
    case 1:
      {
        char *st = get_st(pdb_01_01);

        PyMOL_CmdLoad(G->PyMOL, st, "string", "pdb", "test_01_01", 0, false, true, true,
                      false, PYMOL_DEFAULT);
        ExecutiveSetRepVisib(G, "test_01_01", cRepCyl, 1);
        ExecutiveSetRepVisib(G, "test_01_01", cRepLine, 0);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 3.0F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 2:
      {
        char *st = get_st(pdb_01_01);
        PyMOL_CmdLoad(G->PyMOL, st, "string", "pdb", "test_01_02", 0, false, true, true,
                      false, PYMOL_DEFAULT);
        ExecutiveSetRepVisib(G, "test_01_02", cRepLine, 0);
        ExecutiveSetRepVisib(G, "test_01_02", cRepSurface, 1);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 3:
      {
        char *st = get_st(pdb_01_01);
        PyMOL_CmdLoad(G->PyMOL, st, "string", "pdb", "test_01_03", 0, false, true, true,
                      false, PYMOL_DEFAULT);
        ExecutiveSetRepVisib(G, "test_01_03", cRepLine, 0);
        ExecutiveSetRepVisib(G, "test_01_03", cRepCartoon, 1);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 1.50F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 4:
      {
        char *st = get_st(pdb_01_01);
        PyMOL_CmdLoad(G->PyMOL, st, "string", "pdb", "test_01_04", 0, false, true, true,
                      false, PYMOL_DEFAULT);
        ExecutiveSetRepVisib(G, "test_01_04", cRepLine, 0);
        ExecutiveSetRepVisib(G, "test_01_04", cRepDot, 1);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 1.50F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 5:
      {
        char *st = get_st(pdb_01_01);
        PyMOL_CmdLoad(G->PyMOL, st, "string", "pdb", "test_01_05", 0, false, true, true,
                      false, PYMOL_DEFAULT);
        ExecutiveSetRepVisib(G, "test_01_05", cRepLine, 0);
        ExecutiveSetRepVisib(G, "test_01_05", cRepSphere, 1);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 4.50F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 6:
      {
        char *st = get_st(pdb_01_01);
        PyMOL_CmdLoad(G->PyMOL, st, "string", "pdb", "test_01_06", 0, false, true, true,
                      false, PYMOL_DEFAULT);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 4.50F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 7:
      {
        char *st = get_st(mol_01_02);
        ExecutiveLoad(G, nullptr, st, -1, cLoadTypeMOLStr, "test_01_07", 0, -1, 0, 1, 0, 1,
                      NULL, 0, NULL);
        ExecutiveSetRepVisib(G, "test_01_07", cRepCyl, 1);
        ExecutiveSetRepVisib(G, "test_01_07", cRepLine, 0);
        SettingSetGlobal_b(G, cSetting_valence, 1);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 0.25F);
        SettingSetGlobal_f(G, cSetting_sweep_angle, 180.0F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 8:
      {
        char *st = get_st(mol_01_02);
        ExecutiveLoad(G, nullptr, st, -1, cLoadTypeMOLStr, "test_01_08", 0, -1, 0, 1, 0, 1,
                      NULL, 0, NULL);
        SettingSetGlobal_b(G, cSetting_valence, 1);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    case 9:
      {
        char *st = get_st(mol_01_02);
        ExecutiveLoad(G, nullptr, st, -1, cLoadTypeMOLStr, "test_01_09", 0, -1, 0, 1, 0, 1,
                      NULL, 0, NULL);
        ExecutiveSetRepVisib(G, "test_01_09", cRepMesh, 1);
        ExecutiveSetRepVisib(G, "test_01_09", cRepLine, 0);
        SettingSetGlobal_b(G, cSetting_valence, 1);
        SettingSetGlobal_f(G, cSetting_sweep_speed, 0.50F);
        SettingSetGlobal_f(G, cSetting_sweep_angle, 90.0F);
        ControlRock(G, 1);
        FreeP(st);
        break;
      }
      break;
    }
  }
  return 1;
}