Browse Source

gro, high precision example

Alexander Rose 7 years ago
parent
commit
a14579b627
1 changed files with 32 additions and 0 deletions
  1. 32 0
      src/reader/spec/gro.spec.ts

+ 32 - 0
src/reader/spec/gro.spec.ts

@@ -12,6 +12,13 @@ const groString = `MD of 2 waters, t= 4.2
     2WATER  HW3    6   1.326   0.120   0.568  1.9427 -0.8216 -0.0244
    1.82060   1.82060   1.82060`
 
+const groStringHighPrecision = `Generated by trjconv : 2168 system t=  15.00000
+    3
+    1ETH     C1    1   2.735383   2.672010   1.450194  0.2345 -0.1622 0.2097
+    1ETH    H11    2   0.015804   2.716597   1.460588  0.8528 -0.7984 0.6605
+    1ETH    H12    3   2.744822   2.565544   1.409227 -2.3812  2.8618 1.8101
+   1.82060   1.82060   1.82060`
+
 describe('gro reader', () => {
     it('basic', () => {
         const parsed = parse(groString)
@@ -37,4 +44,29 @@ describe('gro reader', () => {
             }
         }
     })
+
+    it('high precision', () => {
+        const parsed = parse(groStringHighPrecision)
+
+        if (parsed.isError) {
+            console.log(parsed)
+        } else {
+            const groFile = parsed.result
+
+            const header = groFile.blocks[0].getTable('header')
+            if (header) {
+                expect(header.columnNames).toEqual(['title', 'timeInPs', 'numberOfAtoms', 'boxX', 'boxY', 'boxZ'])
+
+                expect(header.getColumn('title').getString(0)).toBe('Generated by trjconv : 2168 system')
+                expect(header.getColumn('timeInPs').getFloat(0)).toBeCloseTo(15)
+                expect(header.getColumn('numberOfAtoms').getInteger(0)).toBe(3)
+
+                expect(header.getColumn('boxX').getFloat(0)).toBeCloseTo(1.82060)
+                expect(header.getColumn('boxY').getFloat(0)).toBeCloseTo(1.82060)
+                expect(header.getColumn('boxZ').getFloat(0)).toBeCloseTo(1.82060)
+            } else {
+                console.error('no header')
+            }
+        }
+    })
 });