UNPKG

molstar

Version:

A comprehensive macromolecular library.

71 lines 2.7 kB
"use strict"; /** * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var parser_1 = require("../dcd/parser"); function createDcdData() { var data = new Uint8Array(4 * 128); var dv = new DataView(data.buffer); // set little endian dv.setInt32(0, 84); // set format string dv.setUint8(4, 'D'.charCodeAt(0)); dv.setUint8(5, 'R'.charCodeAt(0)); dv.setUint8(6, 'O'.charCodeAt(0)); dv.setUint8(7, 'C'.charCodeAt(0)); dv.setInt32(8, 1); // NSET // header end dv.setInt32(22 * 4, 84); // title var titleEnd = 164; var titleStart = 23 * 4 + 1; dv.setInt32(23 * 4, titleEnd); dv.setInt32(titleStart + titleEnd + 4 - 1, titleEnd); // atoms var atomStart = 23 * 4 + titleEnd + 8; dv.setInt32(atomStart, 4); dv.setInt32(atomStart + 4, 1); // one atom dv.setInt32(atomStart + 8, 4); // coords var coordsStart = atomStart + 12; dv.setInt32(coordsStart, 4); dv.setFloat32(coordsStart + 4, 0.1); dv.setInt32(coordsStart + 8, 4); dv.setInt32(coordsStart + 12, 4); dv.setFloat32(coordsStart + 16, 0.2); dv.setInt32(coordsStart + 20, 4); dv.setInt32(coordsStart + 24, 4); dv.setFloat32(coordsStart + 28, 0.3); dv.setInt32(coordsStart + 32, 4); return data; } describe('dcd reader', function () { it('basic', function () { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () { var data, parsed, dcdFile, header, frames; return (0, tslib_1.__generator)(this, function (_a) { switch (_a.label) { case 0: data = createDcdData(); return [4 /*yield*/, (0, parser_1.parseDcd)(data).run()]; case 1: parsed = _a.sent(); if (parsed.isError) { throw new Error(parsed.message); } dcdFile = parsed.result; header = dcdFile.header, frames = dcdFile.frames; expect(header.NSET).toBe(1); expect(header.NATOM).toBe(1); expect(frames[0].x[0]).toBeCloseTo(0.1, 0.0001); expect(frames[0].y[0]).toBeCloseTo(0.2, 0.0001); expect(frames[0].z[0]).toBeCloseTo(0.3, 0.0001); return [2 /*return*/]; } }); }); }); }); //# sourceMappingURL=dcd.spec.js.map