diff --git a/src/mol-data/int/impl/sorted-array.ts b/src/mol-data/int/impl/sorted-array.ts index 38144716e7538d19399fe6d77351d18bbea9ada7..1e857f27bddfd75d354fe5c7874901e1c889fd8b 100644 --- a/src/mol-data/int/impl/sorted-array.ts +++ b/src/mol-data/int/impl/sorted-array.ts @@ -60,10 +60,11 @@ export function getAt(xs: Nums, i: number) { return xs[i]; } export function areEqual(a: Nums, b: Nums) { if (a === b) return true; - const aSize = a.length; + let aSize = a.length; if (aSize !== b.length || a[0] !== b[0] || a[aSize - 1] !== b[aSize - 1]) return false; if (isRange(a)) return true; - for (let i = 0; i < aSize; i++) { + aSize--; + for (let i = 1; i < aSize; i++) { if (a[i] !== b[i]) return false; } return true; diff --git a/src/mol-geo/geometry/marker-data.ts b/src/mol-geo/geometry/marker-data.ts index 71a375db9fdaaa499761eab4d2757ddfab11d88f..0a99554b5307d0e2e5fcff511fadf1fcf3c75281 100644 --- a/src/mol-geo/geometry/marker-data.ts +++ b/src/mol-geo/geometry/marker-data.ts @@ -21,7 +21,7 @@ export function getMarkersAverage(array: Uint8Array, count: number): number { if (count === 0) return 0; let sum = 0; for (let i = 0; i < count; ++i) { - sum += +!!array[i]; + sum += array[i] && 1; } return sum / count; } diff --git a/src/mol-model/structure/structure/element/loci.ts b/src/mol-model/structure/structure/element/loci.ts index cb68abbdd7a5597a0543514b876f0b096d8dbf4a..2bd638ec668b1e94bbf66b29240ace09ef8f2fde 100644 --- a/src/mol-model/structure/structure/element/loci.ts +++ b/src/mol-model/structure/structure/element/loci.ts @@ -470,7 +470,7 @@ export namespace Loci { } function getUnitIndices(elements: SortedArray<ElementIndex>, indices: SortedArray<ElementIndex>) { - if (SortedArray.areEqual(elements, indices) && SortedArray.isRange(elements)) { + if (SortedArray.isRange(elements) && SortedArray.areEqual(elements, indices)) { return Interval.ofLength(elements.length); } return makeIndexSet(SortedArray.indicesOf<ElementIndex, UnitIndex>(elements, indices));