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_CHECK([../../molecuilder -e], 0, [ignore], [stderr])
|
---|
15 | AT_CHECK([fgrep "Not enough or invalid arguments" stderr], 0, [ignore], [ignore])
|
---|
16 | AT_CHECK([../../molecuilder test.conf], 0, [stdout], [stderr])
|
---|
17 | AT_CHECK([fgrep "Element list loading failed" stdout], 0, [ignore], [ignore])
|
---|
18 | AT_CLEANUP
|
---|
19 |
|
---|
20 | AT_BANNER([MoleCuilder - molecular config creation from xyz file and atom adding])
|
---|
21 | AT_SETUP([Simple configuration])
|
---|
22 | # 1. create a fake element database with the only element we need
|
---|
23 | 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
|
---|
24 | #Element Name Symbol Period Group Block Atomic Number AtomicWeight Covalent Radius vdW Radius
|
---|
25 | Hydrogen H 1 1 s 1 1.008 0.23 1.09
|
---|
26 | ])
|
---|
27 | # 2. create some simplest molecular geometry
|
---|
28 | AT_DATA([test.xyz], [[1
|
---|
29 | # test configuration, created by molecuilder test suite
|
---|
30 | H 10. 10. 10.
|
---|
31 | ]])
|
---|
32 | # 3. make sure config is empty and not remnant from last test with broken dirs
|
---|
33 | AT_DATA([test.conf], [])
|
---|
34 | AT_CHECK([../../molecuilder test.conf -e ./ -p test.xyz], 0, [ignore], [ignore])
|
---|
35 | AT_CHECK([fgrep "Ion_Type1_1" test.conf], 0, [Ion_Type1_1 10.000000000 10.000000000 10.000000000 0 # Number in molecule 0
|
---|
36 | ], [ignore])
|
---|
37 | AT_CHECK([cp test.conf main_pcp_linux], 0, [ignore], [ignore])
|
---|
38 | AT_DATA([input], [aa 10. 10. 10. 1
|
---|
39 | s
|
---|
40 | q
|
---|
41 | ])
|
---|
42 | AT_CHECK([../../molecuilder -e ./ <input], 0, [ignore], [ignore])
|
---|
43 | AT_CHECK([diff main_pcp_linux test.conf], 0, [ignore], [ignore])
|
---|
44 | # 4. test some more configuration
|
---|
45 | AT_CHECK([../../molecuilder test.conf -e ./ -t -s -b -F -E -c -b -a -U -T -u], 0, [ignore], [stderr])
|
---|
46 | AT_CHECK([fgrep -c "Not enough or invalid" stderr], 0, [10
|
---|
47 | ], [ignore])
|
---|
48 | AT_CLEANUP
|
---|
49 |
|
---|
50 | AT_BANNER([MoleCuilder - Fragmentation and Re-fragmentation test])
|
---|
51 | AT_SETUP([Fragmentation])
|
---|
52 | # 1. create a fake element database with the only two elements we need
|
---|
53 | 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
|
---|
54 | #Element Name Symbol Period Group Block Atomic Number AtomicWeight Covalent Radius vdW Radius
|
---|
55 | Hydrogen H 1 1 s 1 1.008 0.23 1.09
|
---|
56 | Carbon C 2 14 p 6 12.011 0.68 1.70
|
---|
57 | ])
|
---|
58 | # 2. create molecular geometry
|
---|
59 | AT_DATA([test.xyz], [[11
|
---|
60 | # test configuration, created by molecuilder test suite
|
---|
61 | C 9.782085945 3.275186040 3.535886037
|
---|
62 | C 8.532785963 4.158586027 3.535886037
|
---|
63 | C 7.283585982 3.275186040 3.535886037
|
---|
64 | H 9.782085945 2.645886050 2.645886050
|
---|
65 | H 9.782085945 2.645886050 4.425886024
|
---|
66 | H 10.672039608 3.904536878 3.535886037
|
---|
67 | H 8.532785963 4.787886018 2.645886050
|
---|
68 | H 8.532785963 4.787886018 4.425886024
|
---|
69 | H 6.393632318 3.904536877 3.535886037
|
---|
70 | H 7.283585982 2.645886050 2.645886050
|
---|
71 | H 7.283585982 2.645886050 4.425886024
|
---|
72 | ]])
|
---|
73 | # 3. make sure config is empty and not remnant from last test with broken dirs
|
---|
74 | AT_DATA([test.conf], [])
|
---|
75 | # 4. create the config and check it
|
---|
76 | AT_CHECK([../../molecuilder test.conf -e ./ -p test.xyz], 0, [ignore], [ignore])
|
---|
77 | AT_CHECK([fgrep "Ion_Type1_4" test.conf], 0, [Ion_Type1_4 8.532785963 4.787886018 2.645886050 0 # Number in molecule 6
|
---|
78 | ], [ignore])
|
---|
79 | AT_CHECK([fgrep "Ion_Type2_4" test.conf], 1, [ignore], [ignore])
|
---|
80 | # 5. fragment the molecule and check the number of configs
|
---|
81 | AT_CHECK([../../molecuilder test.conf -e ./ -f 1.55 2], 0, [ignore], [ignore], [mkdir std; mv BondFragment*.conf* std/])
|
---|
82 | AT_CHECK([mkdir std; mv BondFragment*.conf* std/], 0)
|
---|
83 | AT_CHECK([ls -l std/BondFragment*.conf | wc -l], 0, [5
|
---|
84 | ], [ignore])
|
---|
85 | # 3a. check whether parsing of BondFragment files and re-rwriting config files is working (exit code is 2 as we don't need to continue wrt to ...OrderAtSite)
|
---|
86 | AT_CHECK([../../molecuilder test.conf -e ./ -f 1.55 2], 2, [ignore], [ignore], [mkdir new; mv BondFragment*.conf* new/])
|
---|
87 | AT_CHECK([mkdir new; mv BondFragment*.conf* new/], 0)
|
---|
88 | # 6. compare both dirs by diff'ing
|
---|
89 | AT_CHECK([diff -I '.*Created by molecuilder.*' std/ new/], 0, [], [])
|
---|
90 | AT_CLEANUP
|
---|
91 |
|
---|