File: test_ltemplify.sh

package info (click to toggle)
moltemplate 2.22.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 26,084 kB
  • sloc: python: 25,770; sh: 3,746; tcl: 170; makefile: 14; awk: 4
file content (125 lines) | stat: -rwxr-xr-x 8,905 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
#!/usr/bin/env bash

test_ltemplify() {
  cd tests/
  cp -r ../examples/file_conversion_examples/convert_LAMMPS_to_LT_examples/cnad-cnt .

    # test for basic ltemplify.py functionality
    cd cnad-cnt
      bash README_step1_run_ltemplify.sh
      assertTrue "cnt.lt file not created" "[ -s cnt.lt ]"
      assertTrue "cnad.lt file not created" "[ -s cnad.lt ]"
      NUM_DIH_CNT=`awk "/dihedral:id/{sum+=1} END{print sum}" < cnt.lt`
      assertTrue "cnt.lt missing dihedrals" "[ $NUM_DIH_CNT -gt 0 ]"
      NUM_DIH_CNAD=`awk "/dihedral:id/{sum+=1} END{print sum}" < cnad.lt`
      assertTrue "cnad.lt missing dihedrals" "[ $NUM_DIH_CNAD -gt 0 ]"
      NUM_DIHT_CNT=`awk "/dihedral_coeff/{sum+=1} END{print sum}" < cnt.lt`
      assertTrue "cnt.lt missing dihedral_coeffs" "[ $NUM_DIHT_CNT -gt 0 ]"
      NUM_DIHT_CNAD=`awk "/dihedral_coeff/{sum+=1} END{print sum}" < cnt.lt`
      assertTrue "cnad.lt missing dihedral_coeffs" "[ $NUM_DIHT_CNAD -gt 0 ]"
      bash README_step2_run_moltemplate.sh
      assertTrue "system.data file not created" "[ -s system.data ]"
      NUM_ATOMS=`grep atoms system.data | awk '{print $1}'`
      assertTrue "system.data missing atoms" "[ $NUM_ATOMS -gt 0 ]"
      NUM_BONDS=`grep bonds system.data | awk '{print $1}'`
      assertTrue "system.data missing bonds" "[ $NUM_BONDS -gt 0 ]"
      NUM_ANGLES=`grep angles system.data | awk '{print $1}'`
      assertTrue "system.data missing angles" "[ $NUM_ANGLES -gt 0 ]"
      NUM_DIHEDRALS=`grep dihedrals system.data | awk '{print $1}'`
      assertTrue "system.data missing dihedrals" "[ $NUM_DIHEDRALS -gt 0 ]"
    cd ../
    rm -rf cnad-cnt

    # test for the ability to infer type names from comments
    cp -r test_ltemplify_files deleteme
    cd deleteme
      ltemplify.py input_script_w_coeffs.in input_data_no_coeffs.data > out.lt
      NUM_PAIR_COEFFS=`awk "/pair_coeff/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks pair_coeffs" "[ $NUM_PAIR_COEFFS -gt 0 ]"
      FOUND_GROUP_COMMAND=`awk "/group gEthylenes/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the group command" "[ $FOUND_GROUP_COMMAND -gt 0 ]"
      FOUND_SHAKE_COMMAND=`awk "/fix fHCbonds gEthylenes shake/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the shake command" "[ $FOUND_SHAKE_COMMAND -gt 0 ]"
      FOUND_SET_COMMAND=`awk "/set type/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the set command" "[ $FOUND_SET_COMMAND -gt 0 ]"
      N_C_ATOM_NAMES=`awk "/atom:C/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output has not enough C atoms" "[ $N_C_ATOM_NAMES -eq 28 ]"
      N_spaces_ATOM_NAMES=`awk "/atom:H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like atom type names with spaces" "[ $N_spaces_ATOM_NAMES -eq 29 ]"
      N_spaces_BOND_NAMES=`awk "/bond:C_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like bond type names with spaces" "[ $N_spaces_BOND_NAMES -eq 6 ]"
      N_spaces_ANGLE_NAMES=`awk "/angle:H_C_C spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like angle type names with spaces" "[ $N_spaces_ANGLE_NAMES -eq 5 ]"
      N_spaces_DIHEDRAL_NAMES=`awk "/dihedral:H_C_C_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like dihedral type names with spaces" "[ $N_spaces_DIHEDRAL_NAMES -eq 5 ]"
      N_spaces_IMPROPER_NAMES=`awk "/improper:C_H_H_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like improper type names with spaces" "[ $N_spaces_IMPROPER_NAMES -eq 7 ]"
    cd ../
    rm -rf deleteme/

    cp -r test_ltemplify_files deleteme
    cd deleteme
      ltemplify.py input_script_no_coeffs.in input_data_w_coeffs.data > out.lt
      NUM_PAIR_COEFFS=`awk "/pair_coeff/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks pair_coeffs" "[ $NUM_PAIR_COEFFS -gt 0 ]"
      FOUND_GROUP_COMMAND=`awk "/group gEthylenes/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the group command" "[ $FOUND_GROUP_COMMAND -gt 0 ]"
      FOUND_RATTLE_COMMAND=`awk "/fix fHCbonds gEthylenes rattle/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the rattle command" "[ $FOUND_RATTLE_COMMAND -gt 0 ]"
      FOUND_SET_COMMAND=`awk "/set type/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the set command" "[ $FOUND_SET_COMMAND -gt 0 ]"
      N_C_ATOM_NAMES=`awk "/atom:C/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output has not enough C atoms" "[ $N_C_ATOM_NAMES -eq 28 ]"
      N_spaces_ATOM_NAMES=`awk "/atom:H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like atom type names with spaces" "[ $N_spaces_ATOM_NAMES -eq 29 ]"
      N_spaces_BOND_NAMES=`awk "/bond:C_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like bond type names with spaces" "[ $N_spaces_BOND_NAMES -eq 6 ]"
      N_spaces_ANGLE_NAMES=`awk "/angle:H_C_C spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like angle type names with spaces" "[ $N_spaces_ANGLE_NAMES -eq 5 ]"
      N_spaces_DIHEDRAL_NAMES=`awk "/dihedral:H_C_C_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like dihedral type names with spaces" "[ $N_spaces_DIHEDRAL_NAMES -eq 5 ]"
      N_spaces_IMPROPER_NAMES=`awk "/improper:C_H_H_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like improper type names with spaces" "[ $N_spaces_IMPROPER_NAMES -eq 7 ]"
    cd ../
    rm -rf deleteme/

    cp -r test_ltemplify_files deleteme
    cd deleteme
      ltemplify.py -datacoeffs input_script_no_coeffs.in input_data_w_coeffs.data > out.lt
      FOUND_DATA_PAIR_COEFFS=`awk "/Pair Coeffs/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks a Data Pair Coeffs section" "[ $FOUND_DATA_PAIR_COEFFS -gt 0 ]"
      FOUND_DATA_PAIRIJ_COEFFS=`awk "/PairIJ Coeffs/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks a Data PairIJ Coeffs section" "[ $FOUND_DATA_PAIRIJ_COEFFS -gt 0 ]"
      FOUND_DATA_BOND_COEFFS=`awk "/Bond Coeffs/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks a Data Bond Coeffs section" "[ $FOUND_DATA_BOND_COEFFS -gt 0 ]"
      FOUND_DATA_ANGLE_COEFFS=`awk "/Angle Coeffs/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks a Data Angle Coeffs section" "[ $FOUND_DATA_ANGLE_COEFFS -gt 0 ]"
      FOUND_DATA_DIHEDRAL_COEFFS=`awk "/Dihedral Coeffs/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks a Data Dihedral Coeffs section" "[ $FOUND_DATA_DIHEDRAL_COEFFS -gt 0 ]"
      FOUND_DATA_IMPROPER_COEFFS=`awk "/Improper Coeffs/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output lacks a Data Improper Coeffs section" "[ $FOUND_DATA_IMPROPER_COEFFS -gt 0 ]"
      FOUND_GROUP_COMMAND=`awk "/group gEthylenes/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the group command" "[ $FOUND_GROUP_COMMAND -gt 0 ]"
      FOUND_RATTLE_COMMAND=`awk "/fix fHCbonds gEthylenes rattle/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the rattle command" "[ $FOUND_RATTLE_COMMAND -gt 0 ]"
      FOUND_SET_COMMAND=`awk "/set type/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py failed to process the set command" "[ $FOUND_SET_COMMAND -gt 0 ]"
      N_C_ATOM_NAMES=`awk "/atom:C/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py output has not enough C atoms" "[ $N_C_ATOM_NAMES -eq 28 ]"
      N_spaces_ATOM_NAMES=`awk "/atom:H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like atom type names with spaces" "[ $N_spaces_ATOM_NAMES -eq 29 ]"
      N_spaces_BOND_NAMES=`awk "/bond:C_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like bond type names with spaces" "[ $N_spaces_BOND_NAMES -eq 6 ]"
      N_spaces_ANGLE_NAMES=`awk "/angle:H_C_C spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like angle type names with spaces" "[ $N_spaces_ANGLE_NAMES -eq 5 ]"
      N_spaces_DIHEDRAL_NAMES=`awk "/dihedral:H_C_C_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like dihedral type names with spaces" "[ $N_spaces_DIHEDRAL_NAMES -eq 5 ]"
      N_spaces_IMPROPER_NAMES=`awk "/improper:C_H_H_H spaces/{sum+=1} END{print sum}" < out.lt`
      assertTrue "ltemplify.py doesn't like improper type names with spaces" "[ $N_spaces_IMPROPER_NAMES -eq 7 ]"
    cd ../
    rm -rf deleteme/

  cd ../
}

. tests/shunit2/shunit2