From 2c967194f573d3f12346659ca3ef6bfcd224fe1e Mon Sep 17 00:00:00 2001 From: Paul Pillot Date: Sun, 28 Apr 2024 17:03:43 -0400 Subject: [PATCH] fix: float(i) returns 0 if value is missing valueKind has 3 values: 0 if present, 1 if not present ('.' in Cif), 2 if unknown ('?' in Cif) --- src/parser/cif-parser.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/parser/cif-parser.ts b/src/parser/cif-parser.ts index 791d3ecd..6e72670c 100644 --- a/src/parser/cif-parser.ts +++ b/src/parser/cif-parser.ts @@ -1081,20 +1081,20 @@ class CifParser extends StructureParser { } if (field = cif.categories.reflns?.getField('d_resolution_high') ?? cif.categories.refine?.getField('ls_d_res_high')) { - if (Number.isFinite(valData = field.float(0))) { - s.header.resolution = valData + if (field.valueKind(0) === 0) { // is value present? + s.header.resolution = field.float(0) } } if ( field = cif.categories.refine?.getField('ls_R_factor_R_free')) { - if (Number.isFinite(valData = field.float(0))) { - s.header.rFree = valData + if (field.valueKind(0) === 0) { // is value present? + s.header.rFree = field.float(0) } } if ( field = cif.categories.refine?.getField('ls_R_factor_R_work')) { - if (Number.isFinite(valData = field.float(0))) { - s.header.rFree = valData + if (field.valueKind(0) === 0) { // is value present? + s.header.rFree = field.float(0) } }