
test_a1 = """
H ANDN920101
D alpha-CH chemical shifts (Andersen et al., 1992)
R LIT:1810048b PMID:1575719
A Andersen, N.H., Cao, B. and Chen, C.
T Peptide/protein structure analysis using the chemical shift index method: 
upfield alpha-CH values reveal dynamic helices and aL sites
J Biochem. and Biophys. Res. Comm. 184, 1008-1014 (1992)
C BUNA790102    0.949
I    A/L     R/K     N/M     D/F     C/P     Q/S     E/T     G/W     H/Y     I/V
    4.35    4.38    4.75    4.76    4.65    4.37    4.29    3.97    4.63    3.95
    4.17    4.36    4.52    4.66    4.44    4.50    4.35    4.70    4.60    3.95
//
"""

test_a2 = """
H ALTS910101
D The PAM-120 matrix (Altschul, 1991)
R LIT:1713145 PMID:2051488
A Altschul, S.F.
T Amino acid substitution matrices from an information theoretic perspective
J J. Mol. Biol. 219, 555-565 (1991)
M rows = ARNDCQEGHILKMFPSTWYV, cols = ARNDCQEGHILKMFPSTWYV
    3.
    -3.      6.
    0.     -1.      4.
    0.     -3.      2.      5.
    -3.     -4.     -5.     -7.      9.
    -1.      1.      0.      1.     -7.      6.
    0.     -3.      1.      3.     -7.      2.      5.
    1.     -4.      0.      0.     -5.     -3.     -1.      5.
    -3.      1.      2.      0.     -4.      3.     -1.     -4.      7.
    -1.     -2.     -2.     -3.     -3.     -3.     -3.     -4.     -4.      6.
    -3.     -4.     -4.     -5.     -7.     -2.     -4.     -5.     -3.      1.      5.
    -2.      2.      1.     -1.     -7.      0.     -1.     -3.     -2.     -2.     -4.      5.
    -2.     -1.     -3.     -4.     -6.     -1.     -4.     -4.     -4.      1.      3.      0.      8.
    -4.     -4.     -4.     -7.     -6.     -6.     -6.     -5.     -2.      0.      0.     -6.     -1.      8.
    1.     -1.     -2.     -2.     -3.      0.     -1.     -2.     -1.     -3.     -3.     -2.     -3.     -5.      6.
    1.     -1.      1.      0.     -1.     -2.     -1.      1.     -2.     -2.     -4.     -1.     -2.     -3.      1.      3.
    1.     -2.      0.     -1.     -3.     -2.     -2.     -1.     -3.      0.     -3.     -1.     -1.     -4.     -1.      2.      4.
    -7.      1.     -5.     -8.     -8.     -6.     -8.     -8.     -5.     -7.     -5.     -5.     -7.     -1.     -7.     -2.     -6.     12.
    -4.     -6.     -2.     -5.     -1.     -5.     -4.     -6.     -1.     -2.     -3.     -6.     -4.      4.     -6.     -3.     -3.     -1.      8.
    0.     -3.     -3.     -3.     -2.     -3.     -3.     -2.     -3.      3.      1.     -4.      1.     -3.     -2.     -2.      0.     -8.     -3.      5.
//
"""

test_a3 = """
H TANS760101
D Statistical contact potential derived from 25 x-ray protein structures
R PMID:1004017
A Tanaka, S. and Scheraga, H.A.
T Medium- and long-range interaction parameters between amino acids 
for predicting three-dimensional structures of proteins
J Macromolecules 9, 945-950 (1976)
M rows = ARNDCQEGHILKMFPSTWYV, cols = ARNDCQEGHILKMFPSTWYV
-2.6
-3.4 -4.3
-3.1 -4.1 -3.2
-2.8 -3.9 -3.1 -2.7
-4.2 -5.3 -4.9 -4.2 -7.1
-3.5 -4.5 -3.8 -3.2 -5.0 -3.4
-3.0 -4.2 -3.4 -3.3 -4.4 -3.6 -2.8
-3.8 -4.5 -4.0 -3.7 -5.4 -4.4 -3.8 -3.9
-4.0 -4.9 -4.4 -4.3 -5.6 -4.7 -4.5 -4.7 -4.9
-5.9 -6.2 -5.8 -5.4 -7.3 -5.9 -5.7 -6.3 -6.6 -8.2
-4.8 -5.1 -4.6 -4.3 -6.2 -5.0 -4.6 -5.2 -5.6 -7.5 -6.0
-3.1 -3.6 -3.3 -3.2 -4.4 -3.7 -3.8 -3.8 -4.1 -5.6 -4.6 -2.7
-4.6 -5.0 -4.2 -4.3 -6.2 -3.5 -4.6 -5.1 -5.4 -7.4 -6.3 -4.7 -5.8
-5.1 -5.8 -5.0 -4.9 -6.8 -5.3 -5.0 -5.6 -6.4 -8.0 -7.0 -4.9 -6.6 -7.1
-3.4 -4.2 -3.6 -3.3 -5.3 -4.0 -3.5 -4.2 -4.5 -6.0 -4.8 -3.6 -5.1 -5.2 -3.5
-2.9 -3.8 -3.1 -2.7 -4.6 -3.6 -3.2 -3.8 -4.3 -5.5 -4.4 -3.0 -4.1 -4.7 -3.4 -2.5
-3.3 -4.0 -3.5 -3.1 -4.8 -3.7 -3.3 -4.1 -4.5 -5.9 -4.8 -3.3 -4.6 -5.1 -3.6 -3.3 -3.1
-5.2 -5.8 -5.3 -5.1 -6.9 -5.8 -5.2 -5.8 -6.5 -7.8 -6.8 -5.0 -6.9 -7.4 -5.6 -5.0 -5.1 -6.8
-4.7 -5.6 -5.0 -4.7 -6.6 -5.2 -4.9 -5.4 -6.1 -7.4 -6.2 -4.9 -6.1 -6.6 -5.2 -4.7 -4.9 -6.8 -6.0
-4.3 -4.9 -4.3 -4.0 -6.0 -4.7 -4.2 -5.1 -5.3 -7.3 -6.2 -4.2 -6.0 -6.5 -4.7 -4.2 -4.4 -6.5 -5.9 -5.5
//
"""

test_index= """
I    A/L     R/K     N/M     D/F     C/P     Q/S     E/T     G/W     H/Y     I/V
    4.35    4.38    4.75    4.76    4.65    4.37    4.29    3.97    4.63    3.95
    4.17    4.36    4.52    4.66    4.44    4.50    4.35    4.70    4.60    3.95
"""

test_index_result = [
    4.35, 4.38, 4.75, 4.76, 4.65, 4.37, 4.29, 3.97, 4.63, 3.95, 4.17, 4.36,
    4.52, 4.66, 4.44, 4.50, 4.35, 4.70, 4.60, 3.95
]

test_lower_triangular_matrix = """
M rows = ARNDCQEGHILKMFPSTWYV, cols = ARNDCQEGHILKMFPSTWYV
-2.6
-3.4 -4.3
-3.1 -4.1 -3.2
-2.8 -3.9 -3.1 -2.7
-4.2 -5.3 -4.9 -4.2 -7.1
-3.5 -4.5 -3.8 -3.2 -5.0 -3.4
-3.0 -4.2 -3.4 -3.3 -4.4 -3.6 -2.8
-3.8 -4.5 -4.0 -3.7 -5.4 -4.4 -3.8 -3.9
-4.0 -4.9 -4.4 -4.3 -5.6 -4.7 -4.5 -4.7 -4.9
-5.9 -6.2 -5.8 -5.4 -7.3 -5.9 -5.7 -6.3 -6.6 -8.2
-4.8 -5.1 -4.6 -4.3 -6.2 -5.0 -4.6 -5.2 -5.6 -7.5 -6.0
-3.1 -3.6 -3.3 -3.2 -4.4 -3.7 -3.8 -3.8 -4.1 -5.6 -4.6 -2.7
-4.6 -5.0 -4.2 -4.3 -6.2 -3.5 -4.6 -5.1 -5.4 -7.4 -6.3 -4.7 -5.8
-5.1 -5.8 -5.0 -4.9 -6.8 -5.3 -5.0 -5.6 -6.4 -8.0 -7.0 -4.9 -6.6 -7.1
-3.4 -4.2 -3.6 -3.3 -5.3 -4.0 -3.5 -4.2 -4.5 -6.0 -4.8 -3.6 -5.1 -5.2 -3.5
-2.9 -3.8 -3.1 -2.7 -4.6 -3.6 -3.2 -3.8 -4.3 -5.5 -4.4 -3.0 -4.1 -4.7 -3.4 -2.5
-3.3 -4.0 -3.5 -3.1 -4.8 -3.7 -3.3 -4.1 -4.5 -5.9 -4.8 -3.3 -4.6 -5.1 -3.6 -3.3 -3.1
-5.2 -5.8 -5.3 -5.1 -6.9 -5.8 -5.2 -5.8 -6.5 -7.8 -6.8 -5.0 -6.9 -7.4 -5.6 -5.0 -5.1 -6.8
-4.7 -5.6 -5.0 -4.7 -6.6 -5.2 -4.9 -5.4 -6.1 -7.4 -6.2 -4.9 -6.1 -6.6 -5.2 -4.7 -4.9 -6.8 -6.0
-4.3 -4.9 -4.3 -4.0 -6.0 -4.7 -4.2 -5.1 -5.3 -7.3 -6.2 -4.2 -6.0 -6.5 -4.7 -4.2 -4.4 -6.5 -5.9 -5.5
"""

test_non_triangular_matrix = """
M rows = ARNDCQEGHILKMFPSTWYV, cols = ARNDCQEGHILKMFPSTWYV
  -0.94  1.26  0.55 0.76 -1.54  1.14 1.57 -0.78  0.44 -1.59 -1.64  1.91 -0.90 -1.49  0.28  0.20 -0.04  -0.92 -0.75 -1.45
   0.56  1.79  2.31 0.79 -0.67  2.54 0.72  1.09  0.94 -0.01  0.01  3.68  0.89 -0.05  1.37  0.83  1.35   0.00  0.33  0.44
   0.59  2.21  1.82 0.77 -0.90  0.46 3.06 -0.16  0.63 -0.33  0.20  2.43  0.99  0.63  0.54  0.24  0.63   0.11 -0.19  0.23
   0.66  0.76  0.76 1.19 -0.21  1.66 2.22  0.29  0.57  0.59  0.79  1.13  1.41  0.49  1.70  1.03  1.19   1.85  0.18  0.86
  -1.75  0.78 -1.00 0.32 -3.64  0.48 0.87 -1.67 -0.62 -2.77 -2.32  0.19 -1.22 -2.67 -1.62 -0.83 -1.14  -0.52 -1.94 -2.35
   0.33  2.15  1.22 1.26  1.37  1.17 2.56  0.92  1.02  0.11  0.00  2.58  0.79 -0.26  0.53  1.19  1.11   0.21  0.39  0.15
   0.82  1.05  2.18 2.11  0.01  2.42 2.58  1.15  0.97  0.20  0.31  1.31  1.25  0.12  2.00  1.09  1.13   0.58  0.31  0.39
  -0.40  0.95  0.03 0.14 -1.00  0.34 0.99 -1.32  0.13 -1.40 -1.36  1.58 -0.90 -1.41  0.82 -0.27  0.21  -0.59 -1.27 -1.09
  -0.75  2.19  0.13 0.68 -1.37  1.98 1.13  0.01  1.52 -0.83 -0.58  2.26 -0.82 -1.01  0.53 -0.17  0.02 -49.00 -0.61 -0.56
  -1.99  0.25 -0.20 1.00 -2.44 -0.12 0.88 -1.54 -0.05 -2.64 -2.33  0.75 -1.85 -2.46 -1.06 -0.59 -0.65  -1.82 -1.88 -2.45
  -2.02  0.34 -0.04 0.13 -2.29  0.24 0.73 -1.27 -0.46 -2.53 -2.44  0.67 -1.80 -2.28 -1.29 -0.40 -0.34  -1.76 -1.66 -2.26
   0.60  3.11  2.23 1.06  0.50  1.80 1.65  0.82  1.25  0.10  0.34  3.51  0.98 -0.21  1.15  2.09  1.30  -0.14  0.28  0.13
  -1.54 -0.06 -0.63 1.76 -2.51  0.14 0.72 -1.74  0.07 -2.27 -2.22  1.27 -1.77 -1.87  0.34 -0.02 -0.21  -0.93 -1.54 -1.81
  -2.12  0.33 -0.70 0.17 -2.30 -0.59 0.26 -1.60 -0.88 -2.53 -2.44 -0.42 -1.83 -2.68 -1.40 -0.82 -0.61  -1.63 -1.83 -2.25
   0.63  2.43 -0.19 1.31 -1.63  1.46 1.91  0.08  1.11 -0.20  0.47  1.94 -0.34  0.15  0.57  0.00  1.15   0.06  0.26 -0.06
  -0.41  0.88  1.02 1.04 -0.21  1.27 0.94  0.04  0.75 -0.48 -0.67  2.28  0.45 -0.92  0.75  0.50  0.96   0.22 -0.19 -0.54
  -0.32  1.48  0.35 0.43 -1.44  0.38 1.36 -0.38  0.20 -1.14 -1.00  1.38 -0.35 -0.97 -0.05 -0.16  0.29  -0.53 -0.76 -0.73
  -1.85  0.45 -0.03 0.80 -1.64 -0.23 0.11 -0.95  0.67 -1.58 -2.13  0.61 -1.75 -1.59 -1.07 -0.34 -0.40  -1.29 -1.27 -1.79
  -0.88 -0.20 -0.29 0.14 -1.31  0.09 0.71 -0.56 -0.57 -1.66 -1.38  1.40 -1.60 -1.97 -0.73 -0.32 -0.37  -1.40 -0.96 -1.38
  -1.74  0.85  0.24 0.72 -2.25  0.45 0.81 -1.29 -0.24 -2.46 -2.38  0.37 -1.21 -2.16 -1.00 -0.10 -0.57  -1.34 -1.52 -2.31
"""
