|
@@ -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')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
});
|