| 1 | # Process with autom4te to create an -*- Autotest -*- test suite. | 
|---|
| 2 |  | 
|---|
| 3 |  | 
|---|
| 4 | AT_INIT([Molecular Builder]) | 
|---|
| 5 |  | 
|---|
| 6 | # Checking if command line options are parsed correctly | 
|---|
| 7 | AT_BANNER([MoleCuilder - standard options]) | 
|---|
| 8 | AT_SETUP([Standard Options]) | 
|---|
| 9 | AT_CHECK([pwd],[ignore],[ignore]) | 
|---|
| 10 | AT_CHECK([../../molecuilder -v], 0, [stdout], [ignore]) | 
|---|
| 11 | AT_CHECK([fgrep molecuilder stdout], 0, [ignore], [ignore]) | 
|---|
| 12 | AT_CHECK([../../molecuilder -h], 0, [stdout], [ignore]) | 
|---|
| 13 | AT_CHECK([fgrep "Give this help screen" stdout], 0, [ignore], [ignore]) | 
|---|
| 14 | AT_CLEANUP | 
|---|
| 15 |  | 
|---|
| 16 | AT_BANNER([MoleCuilder - simple command line tests]) | 
|---|
| 17 | AT_SETUP([Simple configuration]) | 
|---|
| 18 | # 1. create a fake element database with the only element we need | 
|---|
| 19 | AT_DATA([elements.db],[#        Covalent        radius  of      each    element in      Angstroem       from    CSD     (binding        is:     [Rcov(A)+Rcov(B)-t,Rcov(A)+Rcov(B)+t]   with    t       =       0.4A | 
|---|
| 20 | #Element        Name    Symbol  Period  Group   Block   Atomic  Number  AtomicWeight    Covalent        Radius  vdW     Radius | 
|---|
| 21 | Hydrogen        H       1       1       s       1       1.008   0.23    1.09 | 
|---|
| 22 | ]) | 
|---|
| 23 | # 2. create some simplest molecular geometry | 
|---|
| 24 | AT_DATA([test.xyz], [[1 | 
|---|
| 25 | # test configuration, created by molecuilder test suite | 
|---|
| 26 | H       10.     10.     10. | 
|---|
| 27 | ]]) | 
|---|
| 28 | # 3. make sure config is empty and not remnant from last test with broken dirs | 
|---|
| 29 | AT_DATA([test.conf], []) | 
|---|
| 30 | AT_CHECK([../../molecuilder test.conf -e ./ -p test.xyz], 0, [ignore], [ignore]) | 
|---|
| 31 | AT_CHECK([fgrep "Ion_Type1_1" test.conf], 0, [Ion_Type1_1       10.000000000    10.000000000    10.000000000    0 # Number in molecule 0 | 
|---|
| 32 | ], [ignore]) | 
|---|
| 33 | AT_DATA([input], [aa 10. 10. 10. 1 | 
|---|
| 34 | s | 
|---|
| 35 | q | 
|---|
| 36 | ]) | 
|---|
| 37 | AT_CHECK([../../molecuilder -e ./ <input], 0, [ignore], [ignore]) | 
|---|
| 38 | AT_CHECK([diff main_pcp_linux test.conf], 0, [ignore], [ignore]) | 
|---|
| 39 | AT_CLEANUP | 
|---|
| 40 |  | 
|---|
| 41 | AT_BANNER([MoleCuilder - Fragmentation test]) | 
|---|
| 42 | AT_SETUP([Fragmentation]) | 
|---|
| 43 | # 1. create a fake element database with the only two elements we need | 
|---|
| 44 | AT_DATA([elements.db],[#  Covalent  radius  of  each  element in  Angstroem from  CSD (binding  is: [Rcov(A)+Rcov(B)-t,Rcov(A)+Rcov(B)+t] with  t = 0.4A | 
|---|
| 45 | #Element  Name  Symbol  Period  Group Block Atomic  Number  AtomicWeight  Covalent  Radius  vdW Radius | 
|---|
| 46 | Hydrogen  H 1 1 s 1 1.008 0.23  1.09 | 
|---|
| 47 | Carbon  C       2       14      p       6       12.011  0.68    1.70 | 
|---|
| 48 | ]) | 
|---|
| 49 | # 2. create molecular geometry | 
|---|
| 50 | AT_DATA([test.xyz], [[11 | 
|---|
| 51 | # test configuration, created by molecuilder test suite | 
|---|
| 52 | C       9.782085945     3.275186040     3.535886037 | 
|---|
| 53 | C       8.532785963     4.158586027     3.535886037 | 
|---|
| 54 | C       7.283585982     3.275186040     3.535886037 | 
|---|
| 55 | H       9.782085945     2.645886050     2.645886050 | 
|---|
| 56 | H       9.782085945     2.645886050     4.425886024 | 
|---|
| 57 | H       10.672039608    3.904536878     3.535886037 | 
|---|
| 58 | H       8.532785963     4.787886018     2.645886050 | 
|---|
| 59 | H       8.532785963     4.787886018     4.425886024 | 
|---|
| 60 | H       6.393632318     3.904536877     3.535886037 | 
|---|
| 61 | H       7.283585982     2.645886050     2.645886050 | 
|---|
| 62 | H       7.283585982     2.645886050     4.425886024 | 
|---|
| 63 | ]]) | 
|---|
| 64 | # 3. make sure config is empty and not remnant from last test with broken dirs | 
|---|
| 65 | AT_DATA([test.conf], []) | 
|---|
| 66 | # 4. create the config and check it | 
|---|
| 67 | AT_CHECK([../../molecuilder test.conf -e ./ -p test.xyz], 0, [ignore], [ignore]) | 
|---|
| 68 | AT_CHECK([fgrep "Ion_Type1_4" test.conf], 0, [Ion_Type1_4       8.532785963     4.787886018     2.645886050     0 # Number in molecule 6 | 
|---|
| 69 | ], [ignore]) | 
|---|
| 70 | AT_CHECK([fgrep "Ion_Type2_4" test.conf], 1, [ignore], [ignore]) | 
|---|
| 71 | # 5. fragment the molecule and check the number of configs | 
|---|
| 72 | AT_CHECK([../../molecuilder test.conf -e ./ -f 1.55 2], 0, [ignore], [ignore], [mkdir std; mv BondFragment*.conf* std/]) | 
|---|
| 73 | AT_CHECK([mkdir std; mv BondFragment*.conf* std/], 0) | 
|---|
| 74 | AT_CHECK([ls -l std/BondFragment*.conf | wc -l], 0, [5 | 
|---|
| 75 | ], [ignore]) | 
|---|
| 76 | AT_CHECK([../../molecuilder test.conf -e ./ -f 1.55 2], 0, [ignore], [ignore], [mkdir new; mv BondFragment*.conf* new/]) | 
|---|
| 77 | AT_CHECK([mkdir new; mv BondFragment*.conf* new/], 0) | 
|---|
| 78 | # 6. compare both dirs by diff'ing | 
|---|
| 79 | AT_CHECK([diff -I '.*Created by molecuilder.*' std/ new/], 0, [], []) | 
|---|
| 80 | AT_CLEANUP | 
|---|
| 81 |  | 
|---|