From f37609077a1dc917557e2ec968573bd4d7cbd023 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 12:34:15 +0000 Subject: [PATCH 1/3] Initial plan From d882d5f850143049a7e4761311ce225923cf48a6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 12:54:22 +0000 Subject: [PATCH 2/3] Initial plan for fixing code coverage failures Co-authored-by: pubkey <8926560+pubkey@users.noreply.github.com> --- test_output.log | 527 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 527 insertions(+) create mode 100644 test_output.log diff --git a/test_output.log b/test_output.log new file mode 100644 index 00000000..7b795335 --- /dev/null +++ b/test_output.log @@ -0,0 +1,527 @@ + +> mingo@7.2.0 test +> vitest run --coverage + + + RUN  v3.2.4 /home/runner/work/mingo/mingo + Coverage enabled with v8 + + ✓ test/operators/query/evaluation.test.ts (12 tests) 94ms + ✓ test/core.test.ts (13 tests) 216ms + ✓ test/aggregation-examples/array-manipulations/array-sort-percentiles.test.ts (1 test) 77ms + ✓ test/updater.test.ts (51 tests) 66ms + ✓ test/util.test.ts (149 tests) 45ms + ✓ test/operators/expression/date/dateToString.test.ts (12 tests) 22ms + ✓ test/operators/expression/date/dateTrunc.test.ts (47 tests) 29ms + ✓ test/operators/expression/string.test.ts (146 tests) 35ms + ✓ test/operators/expression/arithmetic.test.ts (190 tests) 33ms + ✓ test/operators/expression/date/isoWeek.test.ts (6 tests) 33ms +stdout | test/perf.test.ts > perf > aggregation > elapsed time should be less than a 30 seconds +AGGREGATE_PERF: 2.735s + + ✓ test/operators/expression/date.test.ts (1 test) 36ms + ✓ test/operators/expression/date/week.test.ts (3 tests) 21ms + ✓ test/operators/projection.test.ts (26 tests) 24ms + ✓ test/operators/expression/date/dayOfWeek.test.ts (6 tests) 33ms +stdout | test/perf.test.ts > perf > sorting > should complete in less than 500ms +MINGO SORT: 23.884ms +MINGO SORT WITH LOCALE: 71.995ms +NATIVE SORT: 3.828ms +NATIVE SORT WITH LOCALE: 1.057s + + ✓ test/perf.test.ts (2 tests) 3927ms + ✓ perf > aggregation > elapsed time should be less than a 30 seconds  2738ms + ✓ perf > sorting > should complete in less than 500ms  1186ms + ✓ test/operators/pipeline/bucketAuto.test.ts (20 tests) 30ms + ✓ test/operators/expression/set.test.ts (47 tests) 32ms + ✓ test/operators/pipeline/group.test.ts (8 tests) 38ms + ✓ test/operators/query/array.test.ts (29 tests) 21ms + ✓ test/operators/window/expMovingAvg.test.ts (3 tests) 16ms + ✓ test/operators/expression/type.test.ts (95 tests) 29ms + ✓ test/operators/expression/misc.test.ts (6 tests) 20ms + ✓ test/aggregation-examples/time-series/iot-power-consumption.test.ts (2 tests) 23ms + ✓ test/operators/expression/object.test.ts (25 tests) 25ms + ✓ test/operators/pipeline/setWindowFields.test.ts (9 tests) 28ms + ✓ test/operators/expression/trignometry.test.ts (68 tests) 17ms + ✓ test/operators/pipeline/graphLookup.test.ts (3 tests) 28ms + ✓ test/aggregation-examples/array-manipulations/comparison-of-two-arrays.test.ts (1 test) 29ms + ✓ test/operators/expression/date/dateDiff.test.ts (88 tests) 23ms + ✓ test/cursor.test.ts (3 tests) 22ms + ✓ test/operators/pipeline/merge.test.ts (10 tests) 29ms + ✓ test/aggregation-examples/trend-analysis/largest-graph-network.test.ts (1 test) 15ms + ✓ test/operators/pipeline/unwind.test.ts (7 tests) 18ms + ✓ test/operators/accumulator/percentile.test.ts (21 tests) 21ms + ✓ test/stackoverflow-examples/hierarchy-of-related-docs.test.ts (1 test) 18ms + ✓ test/operators/window/minMaxScaler.test.ts (2 tests) 15ms + ✓ test/operators/accumulator/firstN.test.ts (7 tests) 14ms + ✓ test/operators/update/inc.test.ts (10 tests) 23ms + ✓ test/stackoverflow-examples/degrees-of-separation.test.ts (1 test) 17ms + ✓ test/operators/pipeline/project.test.ts (44 tests) 23ms + ✓ test/aggregation-examples/time-series/state-change-boundaries.test.ts (1 test) 14ms + ✓ test/aggregation-examples/type-convert/convert-incomplete-dates.test.ts (1 test) 12ms + ✓ test/operators/pipeline/unionWith.test.ts (6 tests) 17ms + ✓ test/aggregation-examples/array-manipulations/pivot-array-itemst.test.ts (1 test) 14ms + ✓ test/aggregation-examples/trend-analysis/faceted-classifications.test.ts (1 test) 14ms + ✓ test/operators/expression/variable.test.ts (2 tests) 15ms + ✓ test/operators/window/documentNumber.test.ts (2 tests) 15ms + ✓ test/operators/pipeline/densify.test.ts (4 tests) 17ms + ✓ test/operators/window/rank.test.ts (3 tests) 17ms + ✓ test/operators/window/linearFill.test.ts (3 tests) 15ms + ✓ test/stackoverflow-examples/lookup-legacy-vs-modern-syntax.test.ts (2 tests) 17ms + ✓ test/aggregation-examples/foundational/group-and-total.test.ts (1 test) 14ms + ✓ test/operators/window/denseRank.test.ts (3 tests) 18ms + ✓ test/operators/expression/boolean.test.ts (25 tests) 21ms + ✓ test/operators/expression/array/concatArrays.test.ts (12 tests) 17ms + ✓ test/operators/query/element.test.ts (35 tests) 16ms + ✓ test/stackoverflow-examples/persons-connected-to-hotels.test.ts (1 test) 18ms + ✓ test/operators/update/set.test.ts (6 tests) 16ms + ✓ test/operators/expression/array/reduce.test.ts (6 tests) 14ms + ✓ test/operators/expression/bitwise.test.ts (23 tests) 14ms + ✓ test/operators/accumulator/covarianceSamp.test.ts (1 test) 13ms + ✓ test/operators/accumulator/accumulator.test.ts (3 tests) 15ms + ✓ test/aggregation-examples/joining/one-to-one-join.test.ts (1 test) 13ms + ✓ test/operators/accumulator/covariancePop.test.ts (1 test) 12ms + ✓ test/aggregation-examples/array-manipulations/array-element-grouping.test.ts (1 test) 11ms + ✓ test/operators/update/rename.test.ts (6 tests) 13ms + ✓ test/operators/query/comparison.test.ts (30 tests) 17ms + ✓ test/operators/accumulator/count.test.ts (2 tests) 13ms + ✓ test/stackoverflow-examples/find-sponsors.test.ts (1 test) 15ms + ✓ test/operators/accumulator/avg.test.ts (3 tests) 14ms + ✓ test/operators/expression/array/sortArray.test.ts (7 tests) 10ms + ✓ test/aggregation-examples/trend-analysis/incremental-analytics.test.ts (3 tests) 15ms + ✓ test/aggregation-examples/securing-data/mask-sensitive-fields.test.ts (1 test) 14ms + ✓ test/stackoverflow-examples/aggregate-user-orders-data.test.ts (1 test) 14ms + ✓ test/operators/update/pull.test.ts (6 tests) 14ms + ✓ test/operators/pipeline/redact.test.ts (6 tests) 13ms + ✓ test/lazy.test.ts (14 tests) 18ms + ✓ test/operators/expression/array/zip.test.ts (15 tests) 11ms + ✓ test/operators/expression/date/dateAdd.test.ts (28 tests) 11ms + ✓ test/operators/query/logical.test.ts (12 tests) 9ms + ✓ test/operators/window/derivative.test.ts (1 test) 14ms + ✓ test/operators/expression/array/minN.test.ts (10 tests) 9ms + ✓ test/operators/accumulator/first.test.ts (2 tests) 14ms + ✓ test/operators/expression/array/maxN.test.ts (10 tests) 9ms + ✓ test/operators/expression/date/dateFromString.test.ts (16 tests) 11ms + ✓ test/operators/accumulator/median.test.ts (3 tests) 18ms + ✓ test/operators/query/bitwise.test.ts (4 tests) 12ms + ✓ test/aggregation-examples/type-convert/convert-to-strongly-typed.test.ts (1 test) 11ms + ✓ test/stackoverflow-examples/nested-top-down-hierarchy.test.ts (1 test) 13ms + ✓ test/operators/accumulator/last.test.ts (3 tests) 12ms + ✓ test/operators/pipeline/documents.test.ts (2 tests) 12ms + ✓ test/operators/expression/array/filter.test.ts (9 tests) 12ms + ✓ test/operators/expression/date/dateSubtract.test.ts (26 tests) 11ms + ✓ test/operators/pipeline/sort.test.ts (14 tests) 11ms + ✓ test/operators/expression/array/firstN.test.ts (8 tests) 13ms + ✓ test/aggregation-examples/foundational/filtered-top-subset.test.ts (1 test) 12ms + ✓ test/operators/expression/array/map.test.ts (7 tests) 9ms + ✓ test/operators/update/push.test.ts (14 tests) 15ms + ✓ test/operators/expression/conditional.test.ts (15 tests) 11ms + ✓ test/operators/expression/literal.test.ts (1 test) 8ms + ✓ test/aggregation-examples/joining/multi-one-to-many.test.ts (1 test) 13ms + ✓ test/operators/window/shift.test.ts (2 tests) 13ms + ✓ test/operators/expression/array/arrayElemAt.test.ts (8 tests) 10ms + ✓ test/operators/accumulator/lastN.test.ts (8 tests) 10ms + ✓ test/operators/window/integral.test.ts (1 test) 11ms + ✓ test/operators/window/locf.test.ts (1 test) 9ms + ✓ test/operators/expression/array/arrayToObject.test.ts (12 tests) 13ms + ✓ test/operators/accumulator/minN.test.ts (3 tests) 14ms + ✓ test/operators/expression/array/first.test.ts (8 tests) 9ms + ✓ test/operators/update/bit.test.ts (4 tests) 9ms + ✓ test/aggregation-examples/foundational/unpack-array-group-differently.test.ts (1 test) 15ms + ✓ test/aggregation-examples/securing-data/role-programmatic-restricted-view.test.ts (3 tests) 13ms + ✓ test/aggregation-examples/array-manipulations/array-fields-joining.test.ts (1 test) 11ms + ✓ test/operators/expression/array/indexOfArray.test.ts (15 tests) 14ms + ✓ test/aggregation-examples/array-manipulations/array-high-low-avg.test.ts (1 test) 12ms + ✓ test/operators/expression/array/size.test.ts (6 tests) 9ms + ✓ test/operators/pipeline/bucket.test.ts (4 tests) 15ms + ✓ test/operators/update/pullAll.test.ts (1 test) 8ms + ✓ test/operators/update/addToSet.test.ts (5 tests) 9ms + ✓ test/operators/expression/array/slice.test.ts (19 tests) 11ms + ✓ test/operators/expression/array/reverseArray.test.ts (7 tests) 8ms + ✓ test/operators/expression/array/range.test.ts (10 tests) 13ms + ✓ test/operators/update/max.test.ts (3 tests) 8ms + ✓ test/operators/expression/date/dateToParts.test.ts (1 test) 10ms + ✓ test/operators/expression/array/lastN.test.ts (7 tests) 11ms + ✓ test/operators/accumulator/max.test.ts (4 tests) 10ms + ✓ test/operators/update/min.test.ts (3 tests) 9ms + ✓ test/operators/expression/array/isArray.test.ts (9 tests) 9ms + ✓ test/operators/update/currentDate.test.ts (1 test) 7ms + ✓ test/operators/update/mul.test.ts (2 tests) 8ms + ✓ test/aggregation-examples/foundational/distinct-values.test.ts (1 test) 12ms + ✓ test/operators/expression/array/in.test.ts (8 tests) 9ms + ✓ test/operators/expression/date/dateFromParts.test.ts (10 tests) 10ms + ✓ test/operators/expression/toHashedIndexKey.test.ts (1 test) 9ms + ✓ test/operators/expression/array/last.test.ts (7 tests) 7ms + ✓ test/query.test.ts (2 tests) 10ms + ✓ test/operators/expression/custom.test.ts (1 test) 9ms + ✓ test/operators/accumulator/bottomN.test.ts (4 tests) 4ms + ✓ test/operators/update/pop.test.ts (3 tests) 8ms + ✓ test/operators/accumulator/topN.test.ts (4 tests) 6ms + ✓ test/operators/expression/date/isoDayOfWeek.test.ts (5 tests) 8ms + ✓ test/operators/pipeline/replaceRoot.test.ts (4 tests) 5ms + ✓ test/operators/update/unset.test.ts (2 tests) 8ms + ✓ test/operators/pipeline/fill.test.ts (6 tests) 9ms + ✓ test/operators/pipeline/lookup.test.ts (5 tests) 8ms + ✓ test/operators/expression/array/objectToArray.test.ts (2 tests) 5ms + ✓ test/aggregation-examples/securing-data/redacted-view.test.ts (2 tests) 6ms + ✓ test/operators/accumulator/maxN.test.ts (3 tests) 6ms + ✓ test/operators/pipeline/count.test.ts (1 test) 4ms + ✓ test/operators/pipeline/limit.test.ts (1 test) 5ms + ✓ test/operators/pipeline/sample.test.ts (1 test) 5ms + ✓ test/operators/accumulator/top.test.ts (3 tests) 6ms + ✓ test/operators/accumulator/mergeObjects.test.ts (1 test) 5ms + ✓ test/operators/window/_internal.test.ts (2 tests) 7ms + ✓ test/operators/pipeline/addfields.test.ts (7 tests) 8ms + ✓ test/operators/expression/date/dayOfYear.test.ts (1 test) 7ms + ✓ test/operators/accumulator/bottom.test.ts (4 tests) 6ms + ✓ test/operators/expression/date/isoWeekYear.test.ts (2 tests) 7ms + ✓ test/operators/accumulator/min.test.ts (4 tests) 5ms + ✓ test/operators/pipeline/unset.test.ts (3 tests) 6ms + ✓ test/operators/pipeline/skip.test.ts (1 test) 5ms + ✓ test/operators/pipeline/out.test.ts (2 tests) 6ms + ✓ test/operators/pipeline/facet.test.ts (1 test) 6ms + ✓ test/operators/pipeline/sortByCount.test.ts (1 test) 4ms + ✓ test/operators/pipeline/match.test.ts (1 test) 4ms + + Test Files  165 passed (165) + Tests  1861 passed (1861) + Start at  12:37:09 + Duration  40.25s (transform 2.11s, setup 0ms, collect 54.82s, tests 6.64s, environment 45ms, prepare 15.46s) + + % Coverage report from v8 +-------------------|---------|----------|---------|---------|------------------- +File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s +-------------------|---------|----------|---------|---------|------------------- +All files | 99.93 | 98.77 | 99.62 | 99.93 | + src | 100 | 100 | 100 | 100 | + aggregator.ts | 100 | 100 | 100 | 100 | + cursor.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + lazy.ts | 100 | 100 | 100 | 100 | + query.ts | 100 | 100 | 100 | 100 | + types.ts | 0 | 0 | 0 | 0 | + updater.ts | 100 | 100 | 100 | 100 | + src/core | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + src/operators | 100 | 100 | 100 | 100 | + _predicates.ts | 100 | 100 | 100 | 100 | + typings.ts | 0 | 0 | 0 | 0 | + ...rs/accumulator | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + accumulator.ts | 100 | 100 | 100 | 100 | + addToSet.ts | 100 | 100 | 100 | 100 | + avg.ts | 100 | 100 | 100 | 100 | + bottom.ts | 100 | 100 | 100 | 100 | + bottomN.ts | 100 | 100 | 100 | 100 | + count.ts | 100 | 100 | 100 | 100 | + covariancePop.ts | 100 | 100 | 100 | 100 | + ...rianceSamp.ts | 100 | 100 | 100 | 100 | + first.ts | 100 | 100 | 100 | 100 | + firstN.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + last.ts | 100 | 100 | 100 | 100 | + lastN.ts | 100 | 100 | 100 | 100 | + max.ts | 100 | 100 | 100 | 100 | + maxN.ts | 100 | 100 | 100 | 100 | + median.ts | 100 | 100 | 100 | 100 | + mergeObjects.ts | 100 | 100 | 100 | 100 | + min.ts | 100 | 100 | 100 | 100 | + minN.ts | 100 | 100 | 100 | 100 | + percentile.ts | 100 | 100 | 100 | 100 | + push.ts | 100 | 100 | 100 | 100 | + stdDevPop.ts | 100 | 100 | 100 | 100 | + stdDevSamp.ts | 100 | 100 | 100 | 100 | + sum.ts | 100 | 100 | 100 | 100 | + top.ts | 100 | 100 | 100 | 100 | + topN.ts | 100 | 100 | 100 | 100 | + ...ors/expression | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + literal.ts | 100 | 100 | 100 | 100 | + median.ts | 100 | 100 | 100 | 100 | + percentile.ts | 100 | 100 | 100 | 100 | + ...edIndexKey.ts | 100 | 100 | 100 | 100 | + ...ion/arithmetic | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + abs.ts | 100 | 100 | 100 | 100 | + add.ts | 100 | 100 | 100 | 100 | + ceil.ts | 100 | 100 | 100 | 100 | + divide.ts | 100 | 100 | 100 | 100 | + exp.ts | 100 | 100 | 100 | 100 | + floor.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + ln.ts | 100 | 100 | 100 | 100 | + log.ts | 100 | 100 | 100 | 100 | + log10.ts | 100 | 100 | 100 | 100 | + mod.ts | 100 | 100 | 100 | 100 | + multiply.ts | 100 | 100 | 100 | 100 | + pow.ts | 100 | 100 | 100 | 100 | + round.ts | 100 | 100 | 100 | 100 | + sigmoid.ts | 100 | 100 | 100 | 100 | + sqrt.ts | 100 | 100 | 100 | 100 | + subtract.ts | 100 | 100 | 100 | 100 | + trunc.ts | 100 | 100 | 100 | 100 | + ...pression/array | 100 | 100 | 100 | 100 | + arrayElemAt.ts | 100 | 100 | 100 | 100 | + arrayToObject.ts | 100 | 100 | 100 | 100 | + concatArrays.ts | 100 | 100 | 100 | 100 | + filter.ts | 100 | 100 | 100 | 100 | + first.ts | 100 | 100 | 100 | 100 | + firstN.ts | 100 | 100 | 100 | 100 | + in.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + indexOfArray.ts | 100 | 100 | 100 | 100 | + isArray.ts | 100 | 100 | 100 | 100 | + last.ts | 100 | 100 | 100 | 100 | + lastN.ts | 100 | 100 | 100 | 100 | + map.ts | 100 | 100 | 100 | 100 | + maxN.ts | 100 | 100 | 100 | 100 | + minN.ts | 100 | 100 | 100 | 100 | + range.ts | 100 | 100 | 100 | 100 | + reduce.ts | 100 | 100 | 100 | 100 | + reverseArray.ts | 100 | 100 | 100 | 100 | + size.ts | 100 | 100 | 100 | 100 | + slice.ts | 100 | 100 | 100 | 100 | + sortArray.ts | 100 | 100 | 100 | 100 | + zip.ts | 100 | 100 | 100 | 100 | + ...ession/bitwise | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + bitAnd.ts | 100 | 100 | 100 | 100 | + bitNot.ts | 100 | 100 | 100 | 100 | + bitOr.ts | 100 | 100 | 100 | 100 | + bitXor.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + ...ession/boolean | 100 | 100 | 100 | 100 | + and.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + not.ts | 100 | 100 | 100 | 100 | + or.ts | 100 | 100 | 100 | 100 | + ...ion/comparison | 100 | 100 | 100 | 100 | + cmp.ts | 100 | 100 | 100 | 100 | + eq.ts | 100 | 100 | 100 | 100 | + gt.ts | 100 | 100 | 100 | 100 | + gte.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + lt.ts | 100 | 100 | 100 | 100 | + lte.ts | 100 | 100 | 100 | 100 | + ne.ts | 100 | 100 | 100 | 100 | + ...on/conditional | 100 | 100 | 100 | 100 | + cond.ts | 100 | 100 | 100 | 100 | + ifNull.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + switch.ts | 100 | 100 | 100 | 100 | + ...ression/custom | 100 | 100 | 100 | 100 | + function.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + ...xpression/date | 100 | 94.3 | 98.33 | 100 | + _internal.ts | 100 | 91.89 | 100 | 100 | ...17,254,263-267 + dateAdd.ts | 100 | 100 | 100 | 100 | + dateDiff.ts | 100 | 100 | 100 | 100 | + dateFromParts.ts | 100 | 100 | 100 | 100 | + ...FromString.ts | 100 | 100 | 100 | 100 | + dateSubtract.ts | 100 | 100 | 100 | 100 | + dateToParts.ts | 100 | 100 | 100 | 100 | + dateToString.ts | 100 | 82.6 | 90.9 | 100 | 36,66-73 + dateTrunc.ts | 100 | 93.33 | 100 | 100 | 77 + dayOfMonth.ts | 100 | 100 | 100 | 100 | + dayOfWeek.ts | 100 | 100 | 100 | 100 | + dayOfYear.ts | 100 | 100 | 100 | 100 | + hour.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + isoDayOfWeek.ts | 100 | 100 | 100 | 100 | + isoWeek.ts | 100 | 100 | 100 | 100 | + isoWeekYear.ts | 100 | 100 | 100 | 100 | + millisecond.ts | 100 | 100 | 100 | 100 | + minute.ts | 100 | 100 | 100 | 100 | + month.ts | 100 | 100 | 100 | 100 | + second.ts | 100 | 100 | 100 | 100 | + week.ts | 100 | 100 | 100 | 100 | + year.ts | 100 | 100 | 100 | 100 | + ...xpression/misc | 100 | 85.71 | 100 | 100 | + getField.ts | 100 | 80 | 100 | 100 | 23 + index.ts | 100 | 100 | 100 | 100 | + rand.ts | 100 | 100 | 100 | 100 | + sampleRate.ts | 100 | 100 | 100 | 100 | + ...ression/object | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + mergeObjects.ts | 100 | 100 | 100 | 100 | + objectToArray.ts | 100 | 100 | 100 | 100 | + setField.ts | 100 | 100 | 100 | 100 | + unsetField.ts | 100 | 100 | 100 | 100 | + ...expression/set | 96.95 | 95.38 | 100 | 96.95 | + ...ementsTrue.ts | 100 | 100 | 100 | 100 | + ...lementTrue.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + setDifference.ts | 100 | 100 | 100 | 100 | + setEquals.ts | 85.29 | 83.33 | 100 | 85.29 | 40-42,44-45 + ...tersection.ts | 100 | 100 | 100 | 100 | + setIsSubset.ts | 100 | 90 | 100 | 100 | 36 + setUnion.ts | 100 | 100 | 100 | 100 | + ...ression/string | 100 | 99.39 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + concat.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + indexOfBytes.ts | 100 | 100 | 100 | 100 | + ltrim.ts | 100 | 100 | 100 | 100 | + regexFind.ts | 100 | 100 | 100 | 100 | + regexFindAll.ts | 100 | 100 | 100 | 100 | + regexMatch.ts | 100 | 100 | 100 | 100 | + replaceAll.ts | 100 | 100 | 100 | 100 | + replaceOne.ts | 100 | 100 | 100 | 100 | + rtrim.ts | 100 | 100 | 100 | 100 | + split.ts | 100 | 100 | 100 | 100 | + strLenBytes.ts | 100 | 100 | 100 | 100 | + strLenCP.ts | 100 | 100 | 100 | 100 | + strcasecmp.ts | 100 | 100 | 100 | 100 | + substr.ts | 100 | 100 | 100 | 100 | + substrBytes.ts | 100 | 97.67 | 100 | 100 | 45 + substrCP.ts | 100 | 100 | 100 | 100 | + toLower.ts | 100 | 100 | 100 | 100 | + toUpper.ts | 100 | 100 | 100 | 100 | + trim.ts | 100 | 100 | 100 | 100 | + ...on/trignometry | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + acos.ts | 100 | 100 | 100 | 100 | + acosh.ts | 100 | 100 | 100 | 100 | + asin.ts | 100 | 100 | 100 | 100 | + asinh.ts | 100 | 100 | 100 | 100 | + atan.ts | 100 | 100 | 100 | 100 | + atan2.ts | 100 | 100 | 100 | 100 | + atanh.ts | 100 | 100 | 100 | 100 | + cos.ts | 100 | 100 | 100 | 100 | + cosh.ts | 100 | 100 | 100 | 100 | + ...sToRadians.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + ...sToDegrees.ts | 100 | 100 | 100 | 100 | + sin.ts | 100 | 100 | 100 | 100 | + sinh.ts | 100 | 100 | 100 | 100 | + tan.ts | 100 | 100 | 100 | 100 | + tanh.ts | 100 | 100 | 100 | 100 | + ...xpression/type | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + convert.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + isNumber.ts | 100 | 100 | 100 | 100 | + toBool.ts | 100 | 100 | 100 | 100 | + toDate.ts | 100 | 100 | 100 | 100 | + toDecimal.ts | 100 | 100 | 100 | 100 | + toDouble.ts | 100 | 100 | 100 | 100 | + toInt.ts | 100 | 100 | 100 | 100 | + toLong.ts | 100 | 100 | 100 | 100 | + toString.ts | 100 | 100 | 100 | 100 | + type.ts | 100 | 100 | 100 | 100 | + ...ssion/variable | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + let.ts | 100 | 100 | 100 | 100 | + ...ators/pipeline | 100 | 97.41 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + addFields.ts | 100 | 100 | 100 | 100 | + bucket.ts | 100 | 100 | 100 | 100 | + bucketAuto.ts | 100 | 98.71 | 100 | 100 | 308 + count.ts | 100 | 100 | 100 | 100 | + densify.ts | 100 | 97.91 | 100 | 100 | 126 + documents.ts | 100 | 50 | 100 | 100 | 16 + facet.ts | 100 | 100 | 100 | 100 | + fill.ts | 100 | 93.75 | 100 | 100 | 78 + graphLookup.ts | 100 | 100 | 100 | 100 | + group.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + limit.ts | 100 | 100 | 100 | 100 | + lookup.ts | 100 | 96.55 | 100 | 100 | 114 + match.ts | 100 | 100 | 100 | 100 | + merge.ts | 100 | 100 | 100 | 100 | + out.ts | 100 | 100 | 100 | 100 | + project.ts | 100 | 96.15 | 100 | 100 | 39,82,184 + redact.ts | 100 | 94.73 | 100 | 100 | 51 + replaceRoot.ts | 100 | 100 | 100 | 100 | + replaceWith.ts | 100 | 100 | 100 | 100 | + sample.ts | 100 | 100 | 100 | 100 | + set.ts | 100 | 100 | 100 | 100 | + ...ndowFields.ts | 100 | 95.45 | 100 | 100 | 241-242,245 + skip.ts | 100 | 100 | 100 | 100 | + sort.ts | 100 | 92.3 | 100 | 100 | 114,128 + sortByCount.ts | 100 | 100 | 100 | 100 | + unionWith.ts | 100 | 100 | 100 | 100 | + unset.ts | 100 | 100 | 100 | 100 | + unwind.ts | 100 | 100 | 100 | 100 | + ...ors/projection | 100 | 93.33 | 100 | 100 | + elemMatch.ts | 100 | 90 | 100 | 100 | 17 + index.ts | 100 | 100 | 100 | 100 | + slice.ts | 100 | 100 | 100 | 100 | + ...perators/query | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + ...rs/query/array | 100 | 100 | 100 | 100 | + all.ts | 100 | 100 | 100 | 100 | + elemMatch.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + size.ts | 100 | 100 | 100 | 100 | + .../query/bitwise | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + bitsAllClear.ts | 100 | 100 | 100 | 100 | + bitsAllSet.ts | 100 | 100 | 100 | 100 | + bitsAnyClear.ts | 100 | 100 | 100 | 100 | + bitsAnySet.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + ...ery/comparison | 100 | 100 | 100 | 100 | + eq.ts | 100 | 100 | 100 | 100 | + gt.ts | 100 | 100 | 100 | 100 | + gte.ts | 100 | 100 | 100 | 100 | + in.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + lt.ts | 100 | 100 | 100 | 100 | + lte.ts | 100 | 100 | 100 | 100 | + ne.ts | 100 | 100 | 100 | 100 | + nin.ts | 100 | 100 | 100 | 100 | + .../query/element | 100 | 100 | 100 | 100 | + exists.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + type.ts | 100 | 100 | 100 | 100 | + ...ery/evaluation | 100 | 100 | 100 | 100 | + expr.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + jsonSchema.ts | 100 | 100 | 100 | 100 | + mod.ts | 100 | 100 | 100 | 100 | + regex.ts | 100 | 100 | 100 | 100 | + where.ts | 100 | 100 | 100 | 100 | + .../query/logical | 100 | 100 | 100 | 100 | + and.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + nor.ts | 100 | 100 | 100 | 100 | + not.ts | 100 | 100 | 100 | 100 | + or.ts | 100 | 100 | 100 | 100 | + ...erators/update | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + addToSet.ts | 100 | 100 | 100 | 100 | + bit.ts | 100 | 100 | 100 | 100 | + currentDate.ts | 100 | 100 | 100 | 100 | + inc.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + max.ts | 100 | 100 | 100 | 100 | + min.ts | 100 | 100 | 100 | 100 | + mul.ts | 100 | 100 | 100 | 100 | + pop.ts | 100 | 100 | 100 | 100 | + pull.ts | 100 | 100 | 100 | 100 | + pullAll.ts | 100 | 100 | 100 | 100 | + push.ts | 100 | 100 | 100 | 100 | + rename.ts | 100 | 100 | 100 | 100 | + set.ts | 100 | 100 | 100 | 100 | + unset.ts | 100 | 100 | 100 | 100 | + ...erators/window | 100 | 96.25 | 100 | 100 | + _internal.ts | 100 | 100 | 100 | 100 | + denseRank.ts | 100 | 100 | 100 | 100 | + derivative.ts | 100 | 80 | 100 | 100 | 35 + ...mentNumber.ts | 100 | 100 | 100 | 100 | + expMovingAvg.ts | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + integral.ts | 100 | 75 | 100 | 100 | 36 + linearFill.ts | 100 | 100 | 100 | 100 | + locf.ts | 100 | 100 | 100 | 100 | + minMaxScaler.ts | 100 | 88.88 | 100 | 100 | 44 + rank.ts | 100 | 100 | 100 | 100 | + shift.ts | 100 | 100 | 100 | 100 | + src/util | 100 | 99.59 | 98.52 | 100 | + _hash.ts | 100 | 100 | 100 | 100 | + _internal.ts | 100 | 99.54 | 98.24 | 100 | 311,501 + index.ts | 100 | 100 | 100 | 100 | +-------------------|---------|----------|---------|---------|------------------- From 6ae8ed5b9d7198cbb42c56c6fd62b76586289993 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 12:58:36 +0000 Subject: [PATCH 3/3] Add tests for non-primitive set operator paths to fix Codecov coverage drop Co-authored-by: pubkey <8926560+pubkey@users.noreply.github.com> --- .gitignore | 1 + test/operators/expression/set.test.ts | 22 +- test_output.log | 527 -------------------------- 3 files changed, 22 insertions(+), 528 deletions(-) delete mode 100644 test_output.log diff --git a/.gitignore b/.gitignore index 216e4da7..59a2a028 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ node_modules npm-debug.log docs/ build/ +*.log diff --git a/test/operators/expression/set.test.ts b/test/operators/expression/set.test.ts index 552aea63..a2a01490 100644 --- a/test/operators/expression/set.test.ts +++ b/test/operators/expression/set.test.ts @@ -97,6 +97,16 @@ runTest("EdgeCases", { [1, 2] ], true + ], + // non-primitive: subset with extra elements (HashMap early termination) + [[[{ a: 1 }], [{ a: 1 }, { a: 2 }]], true], + // non-primitive: not a subset + [ + [ + [{ a: 1 }, { a: 3 }], + [{ a: 1 }, { a: 2 }] + ], + false ] ], $setEquals: [ @@ -123,7 +133,17 @@ runTest("EdgeCases", { [1, 2] ], true - ] + ], + // non-primitive: equal object arrays (HashMap path) + [ + [ + [{ a: 1 }, { b: 2 }], + [{ b: 2 }, { a: 1 }] + ], + true + ], + // non-primitive: different sizes (HashMap path) + [[[{ a: 1 }, { b: 2 }], [{ a: 1 }]], false] ] }); diff --git a/test_output.log b/test_output.log deleted file mode 100644 index 7b795335..00000000 --- a/test_output.log +++ /dev/null @@ -1,527 +0,0 @@ - -> mingo@7.2.0 test -> vitest run --coverage - - - RUN  v3.2.4 /home/runner/work/mingo/mingo - Coverage enabled with v8 - - ✓ test/operators/query/evaluation.test.ts (12 tests) 94ms - ✓ test/core.test.ts (13 tests) 216ms - ✓ test/aggregation-examples/array-manipulations/array-sort-percentiles.test.ts (1 test) 77ms - ✓ test/updater.test.ts (51 tests) 66ms - ✓ test/util.test.ts (149 tests) 45ms - ✓ test/operators/expression/date/dateToString.test.ts (12 tests) 22ms - ✓ test/operators/expression/date/dateTrunc.test.ts (47 tests) 29ms - ✓ test/operators/expression/string.test.ts (146 tests) 35ms - ✓ test/operators/expression/arithmetic.test.ts (190 tests) 33ms - ✓ test/operators/expression/date/isoWeek.test.ts (6 tests) 33ms -stdout | test/perf.test.ts > perf > aggregation > elapsed time should be less than a 30 seconds -AGGREGATE_PERF: 2.735s - - ✓ test/operators/expression/date.test.ts (1 test) 36ms - ✓ test/operators/expression/date/week.test.ts (3 tests) 21ms - ✓ test/operators/projection.test.ts (26 tests) 24ms - ✓ test/operators/expression/date/dayOfWeek.test.ts (6 tests) 33ms -stdout | test/perf.test.ts > perf > sorting > should complete in less than 500ms -MINGO SORT: 23.884ms -MINGO SORT WITH LOCALE: 71.995ms -NATIVE SORT: 3.828ms -NATIVE SORT WITH LOCALE: 1.057s - - ✓ test/perf.test.ts (2 tests) 3927ms - ✓ perf > aggregation > elapsed time should be less than a 30 seconds  2738ms - ✓ perf > sorting > should complete in less than 500ms  1186ms - ✓ test/operators/pipeline/bucketAuto.test.ts (20 tests) 30ms - ✓ test/operators/expression/set.test.ts (47 tests) 32ms - ✓ test/operators/pipeline/group.test.ts (8 tests) 38ms - ✓ test/operators/query/array.test.ts (29 tests) 21ms - ✓ test/operators/window/expMovingAvg.test.ts (3 tests) 16ms - ✓ test/operators/expression/type.test.ts (95 tests) 29ms - ✓ test/operators/expression/misc.test.ts (6 tests) 20ms - ✓ test/aggregation-examples/time-series/iot-power-consumption.test.ts (2 tests) 23ms - ✓ test/operators/expression/object.test.ts (25 tests) 25ms - ✓ test/operators/pipeline/setWindowFields.test.ts (9 tests) 28ms - ✓ test/operators/expression/trignometry.test.ts (68 tests) 17ms - ✓ test/operators/pipeline/graphLookup.test.ts (3 tests) 28ms - ✓ test/aggregation-examples/array-manipulations/comparison-of-two-arrays.test.ts (1 test) 29ms - ✓ test/operators/expression/date/dateDiff.test.ts (88 tests) 23ms - ✓ test/cursor.test.ts (3 tests) 22ms - ✓ test/operators/pipeline/merge.test.ts (10 tests) 29ms - ✓ test/aggregation-examples/trend-analysis/largest-graph-network.test.ts (1 test) 15ms - ✓ test/operators/pipeline/unwind.test.ts (7 tests) 18ms - ✓ test/operators/accumulator/percentile.test.ts (21 tests) 21ms - ✓ test/stackoverflow-examples/hierarchy-of-related-docs.test.ts (1 test) 18ms - ✓ test/operators/window/minMaxScaler.test.ts (2 tests) 15ms - ✓ test/operators/accumulator/firstN.test.ts (7 tests) 14ms - ✓ test/operators/update/inc.test.ts (10 tests) 23ms - ✓ test/stackoverflow-examples/degrees-of-separation.test.ts (1 test) 17ms - ✓ test/operators/pipeline/project.test.ts (44 tests) 23ms - ✓ test/aggregation-examples/time-series/state-change-boundaries.test.ts (1 test) 14ms - ✓ test/aggregation-examples/type-convert/convert-incomplete-dates.test.ts (1 test) 12ms - ✓ test/operators/pipeline/unionWith.test.ts (6 tests) 17ms - ✓ test/aggregation-examples/array-manipulations/pivot-array-itemst.test.ts (1 test) 14ms - ✓ test/aggregation-examples/trend-analysis/faceted-classifications.test.ts (1 test) 14ms - ✓ test/operators/expression/variable.test.ts (2 tests) 15ms - ✓ test/operators/window/documentNumber.test.ts (2 tests) 15ms - ✓ test/operators/pipeline/densify.test.ts (4 tests) 17ms - ✓ test/operators/window/rank.test.ts (3 tests) 17ms - ✓ test/operators/window/linearFill.test.ts (3 tests) 15ms - ✓ test/stackoverflow-examples/lookup-legacy-vs-modern-syntax.test.ts (2 tests) 17ms - ✓ test/aggregation-examples/foundational/group-and-total.test.ts (1 test) 14ms - ✓ test/operators/window/denseRank.test.ts (3 tests) 18ms - ✓ test/operators/expression/boolean.test.ts (25 tests) 21ms - ✓ test/operators/expression/array/concatArrays.test.ts (12 tests) 17ms - ✓ test/operators/query/element.test.ts (35 tests) 16ms - ✓ test/stackoverflow-examples/persons-connected-to-hotels.test.ts (1 test) 18ms - ✓ test/operators/update/set.test.ts (6 tests) 16ms - ✓ test/operators/expression/array/reduce.test.ts (6 tests) 14ms - ✓ test/operators/expression/bitwise.test.ts (23 tests) 14ms - ✓ test/operators/accumulator/covarianceSamp.test.ts (1 test) 13ms - ✓ test/operators/accumulator/accumulator.test.ts (3 tests) 15ms - ✓ test/aggregation-examples/joining/one-to-one-join.test.ts (1 test) 13ms - ✓ test/operators/accumulator/covariancePop.test.ts (1 test) 12ms - ✓ test/aggregation-examples/array-manipulations/array-element-grouping.test.ts (1 test) 11ms - ✓ test/operators/update/rename.test.ts (6 tests) 13ms - ✓ test/operators/query/comparison.test.ts (30 tests) 17ms - ✓ test/operators/accumulator/count.test.ts (2 tests) 13ms - ✓ test/stackoverflow-examples/find-sponsors.test.ts (1 test) 15ms - ✓ test/operators/accumulator/avg.test.ts (3 tests) 14ms - ✓ test/operators/expression/array/sortArray.test.ts (7 tests) 10ms - ✓ test/aggregation-examples/trend-analysis/incremental-analytics.test.ts (3 tests) 15ms - ✓ test/aggregation-examples/securing-data/mask-sensitive-fields.test.ts (1 test) 14ms - ✓ test/stackoverflow-examples/aggregate-user-orders-data.test.ts (1 test) 14ms - ✓ test/operators/update/pull.test.ts (6 tests) 14ms - ✓ test/operators/pipeline/redact.test.ts (6 tests) 13ms - ✓ test/lazy.test.ts (14 tests) 18ms - ✓ test/operators/expression/array/zip.test.ts (15 tests) 11ms - ✓ test/operators/expression/date/dateAdd.test.ts (28 tests) 11ms - ✓ test/operators/query/logical.test.ts (12 tests) 9ms - ✓ test/operators/window/derivative.test.ts (1 test) 14ms - ✓ test/operators/expression/array/minN.test.ts (10 tests) 9ms - ✓ test/operators/accumulator/first.test.ts (2 tests) 14ms - ✓ test/operators/expression/array/maxN.test.ts (10 tests) 9ms - ✓ test/operators/expression/date/dateFromString.test.ts (16 tests) 11ms - ✓ test/operators/accumulator/median.test.ts (3 tests) 18ms - ✓ test/operators/query/bitwise.test.ts (4 tests) 12ms - ✓ test/aggregation-examples/type-convert/convert-to-strongly-typed.test.ts (1 test) 11ms - ✓ test/stackoverflow-examples/nested-top-down-hierarchy.test.ts (1 test) 13ms - ✓ test/operators/accumulator/last.test.ts (3 tests) 12ms - ✓ test/operators/pipeline/documents.test.ts (2 tests) 12ms - ✓ test/operators/expression/array/filter.test.ts (9 tests) 12ms - ✓ test/operators/expression/date/dateSubtract.test.ts (26 tests) 11ms - ✓ test/operators/pipeline/sort.test.ts (14 tests) 11ms - ✓ test/operators/expression/array/firstN.test.ts (8 tests) 13ms - ✓ test/aggregation-examples/foundational/filtered-top-subset.test.ts (1 test) 12ms - ✓ test/operators/expression/array/map.test.ts (7 tests) 9ms - ✓ test/operators/update/push.test.ts (14 tests) 15ms - ✓ test/operators/expression/conditional.test.ts (15 tests) 11ms - ✓ test/operators/expression/literal.test.ts (1 test) 8ms - ✓ test/aggregation-examples/joining/multi-one-to-many.test.ts (1 test) 13ms - ✓ test/operators/window/shift.test.ts (2 tests) 13ms - ✓ test/operators/expression/array/arrayElemAt.test.ts (8 tests) 10ms - ✓ test/operators/accumulator/lastN.test.ts (8 tests) 10ms - ✓ test/operators/window/integral.test.ts (1 test) 11ms - ✓ test/operators/window/locf.test.ts (1 test) 9ms - ✓ test/operators/expression/array/arrayToObject.test.ts (12 tests) 13ms - ✓ test/operators/accumulator/minN.test.ts (3 tests) 14ms - ✓ test/operators/expression/array/first.test.ts (8 tests) 9ms - ✓ test/operators/update/bit.test.ts (4 tests) 9ms - ✓ test/aggregation-examples/foundational/unpack-array-group-differently.test.ts (1 test) 15ms - ✓ test/aggregation-examples/securing-data/role-programmatic-restricted-view.test.ts (3 tests) 13ms - ✓ test/aggregation-examples/array-manipulations/array-fields-joining.test.ts (1 test) 11ms - ✓ test/operators/expression/array/indexOfArray.test.ts (15 tests) 14ms - ✓ test/aggregation-examples/array-manipulations/array-high-low-avg.test.ts (1 test) 12ms - ✓ test/operators/expression/array/size.test.ts (6 tests) 9ms - ✓ test/operators/pipeline/bucket.test.ts (4 tests) 15ms - ✓ test/operators/update/pullAll.test.ts (1 test) 8ms - ✓ test/operators/update/addToSet.test.ts (5 tests) 9ms - ✓ test/operators/expression/array/slice.test.ts (19 tests) 11ms - ✓ test/operators/expression/array/reverseArray.test.ts (7 tests) 8ms - ✓ test/operators/expression/array/range.test.ts (10 tests) 13ms - ✓ test/operators/update/max.test.ts (3 tests) 8ms - ✓ test/operators/expression/date/dateToParts.test.ts (1 test) 10ms - ✓ test/operators/expression/array/lastN.test.ts (7 tests) 11ms - ✓ test/operators/accumulator/max.test.ts (4 tests) 10ms - ✓ test/operators/update/min.test.ts (3 tests) 9ms - ✓ test/operators/expression/array/isArray.test.ts (9 tests) 9ms - ✓ test/operators/update/currentDate.test.ts (1 test) 7ms - ✓ test/operators/update/mul.test.ts (2 tests) 8ms - ✓ test/aggregation-examples/foundational/distinct-values.test.ts (1 test) 12ms - ✓ test/operators/expression/array/in.test.ts (8 tests) 9ms - ✓ test/operators/expression/date/dateFromParts.test.ts (10 tests) 10ms - ✓ test/operators/expression/toHashedIndexKey.test.ts (1 test) 9ms - ✓ test/operators/expression/array/last.test.ts (7 tests) 7ms - ✓ test/query.test.ts (2 tests) 10ms - ✓ test/operators/expression/custom.test.ts (1 test) 9ms - ✓ test/operators/accumulator/bottomN.test.ts (4 tests) 4ms - ✓ test/operators/update/pop.test.ts (3 tests) 8ms - ✓ test/operators/accumulator/topN.test.ts (4 tests) 6ms - ✓ test/operators/expression/date/isoDayOfWeek.test.ts (5 tests) 8ms - ✓ test/operators/pipeline/replaceRoot.test.ts (4 tests) 5ms - ✓ test/operators/update/unset.test.ts (2 tests) 8ms - ✓ test/operators/pipeline/fill.test.ts (6 tests) 9ms - ✓ test/operators/pipeline/lookup.test.ts (5 tests) 8ms - ✓ test/operators/expression/array/objectToArray.test.ts (2 tests) 5ms - ✓ test/aggregation-examples/securing-data/redacted-view.test.ts (2 tests) 6ms - ✓ test/operators/accumulator/maxN.test.ts (3 tests) 6ms - ✓ test/operators/pipeline/count.test.ts (1 test) 4ms - ✓ test/operators/pipeline/limit.test.ts (1 test) 5ms - ✓ test/operators/pipeline/sample.test.ts (1 test) 5ms - ✓ test/operators/accumulator/top.test.ts (3 tests) 6ms - ✓ test/operators/accumulator/mergeObjects.test.ts (1 test) 5ms - ✓ test/operators/window/_internal.test.ts (2 tests) 7ms - ✓ test/operators/pipeline/addfields.test.ts (7 tests) 8ms - ✓ test/operators/expression/date/dayOfYear.test.ts (1 test) 7ms - ✓ test/operators/accumulator/bottom.test.ts (4 tests) 6ms - ✓ test/operators/expression/date/isoWeekYear.test.ts (2 tests) 7ms - ✓ test/operators/accumulator/min.test.ts (4 tests) 5ms - ✓ test/operators/pipeline/unset.test.ts (3 tests) 6ms - ✓ test/operators/pipeline/skip.test.ts (1 test) 5ms - ✓ test/operators/pipeline/out.test.ts (2 tests) 6ms - ✓ test/operators/pipeline/facet.test.ts (1 test) 6ms - ✓ test/operators/pipeline/sortByCount.test.ts (1 test) 4ms - ✓ test/operators/pipeline/match.test.ts (1 test) 4ms - - Test Files  165 passed (165) - Tests  1861 passed (1861) - Start at  12:37:09 - Duration  40.25s (transform 2.11s, setup 0ms, collect 54.82s, tests 6.64s, environment 45ms, prepare 15.46s) - - % Coverage report from v8 --------------------|---------|----------|---------|---------|------------------- -File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s --------------------|---------|----------|---------|---------|------------------- -All files | 99.93 | 98.77 | 99.62 | 99.93 | - src | 100 | 100 | 100 | 100 | - aggregator.ts | 100 | 100 | 100 | 100 | - cursor.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - lazy.ts | 100 | 100 | 100 | 100 | - query.ts | 100 | 100 | 100 | 100 | - types.ts | 0 | 0 | 0 | 0 | - updater.ts | 100 | 100 | 100 | 100 | - src/core | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - src/operators | 100 | 100 | 100 | 100 | - _predicates.ts | 100 | 100 | 100 | 100 | - typings.ts | 0 | 0 | 0 | 0 | - ...rs/accumulator | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - accumulator.ts | 100 | 100 | 100 | 100 | - addToSet.ts | 100 | 100 | 100 | 100 | - avg.ts | 100 | 100 | 100 | 100 | - bottom.ts | 100 | 100 | 100 | 100 | - bottomN.ts | 100 | 100 | 100 | 100 | - count.ts | 100 | 100 | 100 | 100 | - covariancePop.ts | 100 | 100 | 100 | 100 | - ...rianceSamp.ts | 100 | 100 | 100 | 100 | - first.ts | 100 | 100 | 100 | 100 | - firstN.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - last.ts | 100 | 100 | 100 | 100 | - lastN.ts | 100 | 100 | 100 | 100 | - max.ts | 100 | 100 | 100 | 100 | - maxN.ts | 100 | 100 | 100 | 100 | - median.ts | 100 | 100 | 100 | 100 | - mergeObjects.ts | 100 | 100 | 100 | 100 | - min.ts | 100 | 100 | 100 | 100 | - minN.ts | 100 | 100 | 100 | 100 | - percentile.ts | 100 | 100 | 100 | 100 | - push.ts | 100 | 100 | 100 | 100 | - stdDevPop.ts | 100 | 100 | 100 | 100 | - stdDevSamp.ts | 100 | 100 | 100 | 100 | - sum.ts | 100 | 100 | 100 | 100 | - top.ts | 100 | 100 | 100 | 100 | - topN.ts | 100 | 100 | 100 | 100 | - ...ors/expression | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - literal.ts | 100 | 100 | 100 | 100 | - median.ts | 100 | 100 | 100 | 100 | - percentile.ts | 100 | 100 | 100 | 100 | - ...edIndexKey.ts | 100 | 100 | 100 | 100 | - ...ion/arithmetic | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - abs.ts | 100 | 100 | 100 | 100 | - add.ts | 100 | 100 | 100 | 100 | - ceil.ts | 100 | 100 | 100 | 100 | - divide.ts | 100 | 100 | 100 | 100 | - exp.ts | 100 | 100 | 100 | 100 | - floor.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - ln.ts | 100 | 100 | 100 | 100 | - log.ts | 100 | 100 | 100 | 100 | - log10.ts | 100 | 100 | 100 | 100 | - mod.ts | 100 | 100 | 100 | 100 | - multiply.ts | 100 | 100 | 100 | 100 | - pow.ts | 100 | 100 | 100 | 100 | - round.ts | 100 | 100 | 100 | 100 | - sigmoid.ts | 100 | 100 | 100 | 100 | - sqrt.ts | 100 | 100 | 100 | 100 | - subtract.ts | 100 | 100 | 100 | 100 | - trunc.ts | 100 | 100 | 100 | 100 | - ...pression/array | 100 | 100 | 100 | 100 | - arrayElemAt.ts | 100 | 100 | 100 | 100 | - arrayToObject.ts | 100 | 100 | 100 | 100 | - concatArrays.ts | 100 | 100 | 100 | 100 | - filter.ts | 100 | 100 | 100 | 100 | - first.ts | 100 | 100 | 100 | 100 | - firstN.ts | 100 | 100 | 100 | 100 | - in.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - indexOfArray.ts | 100 | 100 | 100 | 100 | - isArray.ts | 100 | 100 | 100 | 100 | - last.ts | 100 | 100 | 100 | 100 | - lastN.ts | 100 | 100 | 100 | 100 | - map.ts | 100 | 100 | 100 | 100 | - maxN.ts | 100 | 100 | 100 | 100 | - minN.ts | 100 | 100 | 100 | 100 | - range.ts | 100 | 100 | 100 | 100 | - reduce.ts | 100 | 100 | 100 | 100 | - reverseArray.ts | 100 | 100 | 100 | 100 | - size.ts | 100 | 100 | 100 | 100 | - slice.ts | 100 | 100 | 100 | 100 | - sortArray.ts | 100 | 100 | 100 | 100 | - zip.ts | 100 | 100 | 100 | 100 | - ...ession/bitwise | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - bitAnd.ts | 100 | 100 | 100 | 100 | - bitNot.ts | 100 | 100 | 100 | 100 | - bitOr.ts | 100 | 100 | 100 | 100 | - bitXor.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - ...ession/boolean | 100 | 100 | 100 | 100 | - and.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - not.ts | 100 | 100 | 100 | 100 | - or.ts | 100 | 100 | 100 | 100 | - ...ion/comparison | 100 | 100 | 100 | 100 | - cmp.ts | 100 | 100 | 100 | 100 | - eq.ts | 100 | 100 | 100 | 100 | - gt.ts | 100 | 100 | 100 | 100 | - gte.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - lt.ts | 100 | 100 | 100 | 100 | - lte.ts | 100 | 100 | 100 | 100 | - ne.ts | 100 | 100 | 100 | 100 | - ...on/conditional | 100 | 100 | 100 | 100 | - cond.ts | 100 | 100 | 100 | 100 | - ifNull.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - switch.ts | 100 | 100 | 100 | 100 | - ...ression/custom | 100 | 100 | 100 | 100 | - function.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - ...xpression/date | 100 | 94.3 | 98.33 | 100 | - _internal.ts | 100 | 91.89 | 100 | 100 | ...17,254,263-267 - dateAdd.ts | 100 | 100 | 100 | 100 | - dateDiff.ts | 100 | 100 | 100 | 100 | - dateFromParts.ts | 100 | 100 | 100 | 100 | - ...FromString.ts | 100 | 100 | 100 | 100 | - dateSubtract.ts | 100 | 100 | 100 | 100 | - dateToParts.ts | 100 | 100 | 100 | 100 | - dateToString.ts | 100 | 82.6 | 90.9 | 100 | 36,66-73 - dateTrunc.ts | 100 | 93.33 | 100 | 100 | 77 - dayOfMonth.ts | 100 | 100 | 100 | 100 | - dayOfWeek.ts | 100 | 100 | 100 | 100 | - dayOfYear.ts | 100 | 100 | 100 | 100 | - hour.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - isoDayOfWeek.ts | 100 | 100 | 100 | 100 | - isoWeek.ts | 100 | 100 | 100 | 100 | - isoWeekYear.ts | 100 | 100 | 100 | 100 | - millisecond.ts | 100 | 100 | 100 | 100 | - minute.ts | 100 | 100 | 100 | 100 | - month.ts | 100 | 100 | 100 | 100 | - second.ts | 100 | 100 | 100 | 100 | - week.ts | 100 | 100 | 100 | 100 | - year.ts | 100 | 100 | 100 | 100 | - ...xpression/misc | 100 | 85.71 | 100 | 100 | - getField.ts | 100 | 80 | 100 | 100 | 23 - index.ts | 100 | 100 | 100 | 100 | - rand.ts | 100 | 100 | 100 | 100 | - sampleRate.ts | 100 | 100 | 100 | 100 | - ...ression/object | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - mergeObjects.ts | 100 | 100 | 100 | 100 | - objectToArray.ts | 100 | 100 | 100 | 100 | - setField.ts | 100 | 100 | 100 | 100 | - unsetField.ts | 100 | 100 | 100 | 100 | - ...expression/set | 96.95 | 95.38 | 100 | 96.95 | - ...ementsTrue.ts | 100 | 100 | 100 | 100 | - ...lementTrue.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - setDifference.ts | 100 | 100 | 100 | 100 | - setEquals.ts | 85.29 | 83.33 | 100 | 85.29 | 40-42,44-45 - ...tersection.ts | 100 | 100 | 100 | 100 | - setIsSubset.ts | 100 | 90 | 100 | 100 | 36 - setUnion.ts | 100 | 100 | 100 | 100 | - ...ression/string | 100 | 99.39 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - concat.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - indexOfBytes.ts | 100 | 100 | 100 | 100 | - ltrim.ts | 100 | 100 | 100 | 100 | - regexFind.ts | 100 | 100 | 100 | 100 | - regexFindAll.ts | 100 | 100 | 100 | 100 | - regexMatch.ts | 100 | 100 | 100 | 100 | - replaceAll.ts | 100 | 100 | 100 | 100 | - replaceOne.ts | 100 | 100 | 100 | 100 | - rtrim.ts | 100 | 100 | 100 | 100 | - split.ts | 100 | 100 | 100 | 100 | - strLenBytes.ts | 100 | 100 | 100 | 100 | - strLenCP.ts | 100 | 100 | 100 | 100 | - strcasecmp.ts | 100 | 100 | 100 | 100 | - substr.ts | 100 | 100 | 100 | 100 | - substrBytes.ts | 100 | 97.67 | 100 | 100 | 45 - substrCP.ts | 100 | 100 | 100 | 100 | - toLower.ts | 100 | 100 | 100 | 100 | - toUpper.ts | 100 | 100 | 100 | 100 | - trim.ts | 100 | 100 | 100 | 100 | - ...on/trignometry | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - acos.ts | 100 | 100 | 100 | 100 | - acosh.ts | 100 | 100 | 100 | 100 | - asin.ts | 100 | 100 | 100 | 100 | - asinh.ts | 100 | 100 | 100 | 100 | - atan.ts | 100 | 100 | 100 | 100 | - atan2.ts | 100 | 100 | 100 | 100 | - atanh.ts | 100 | 100 | 100 | 100 | - cos.ts | 100 | 100 | 100 | 100 | - cosh.ts | 100 | 100 | 100 | 100 | - ...sToRadians.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - ...sToDegrees.ts | 100 | 100 | 100 | 100 | - sin.ts | 100 | 100 | 100 | 100 | - sinh.ts | 100 | 100 | 100 | 100 | - tan.ts | 100 | 100 | 100 | 100 | - tanh.ts | 100 | 100 | 100 | 100 | - ...xpression/type | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - convert.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - isNumber.ts | 100 | 100 | 100 | 100 | - toBool.ts | 100 | 100 | 100 | 100 | - toDate.ts | 100 | 100 | 100 | 100 | - toDecimal.ts | 100 | 100 | 100 | 100 | - toDouble.ts | 100 | 100 | 100 | 100 | - toInt.ts | 100 | 100 | 100 | 100 | - toLong.ts | 100 | 100 | 100 | 100 | - toString.ts | 100 | 100 | 100 | 100 | - type.ts | 100 | 100 | 100 | 100 | - ...ssion/variable | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - let.ts | 100 | 100 | 100 | 100 | - ...ators/pipeline | 100 | 97.41 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - addFields.ts | 100 | 100 | 100 | 100 | - bucket.ts | 100 | 100 | 100 | 100 | - bucketAuto.ts | 100 | 98.71 | 100 | 100 | 308 - count.ts | 100 | 100 | 100 | 100 | - densify.ts | 100 | 97.91 | 100 | 100 | 126 - documents.ts | 100 | 50 | 100 | 100 | 16 - facet.ts | 100 | 100 | 100 | 100 | - fill.ts | 100 | 93.75 | 100 | 100 | 78 - graphLookup.ts | 100 | 100 | 100 | 100 | - group.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - limit.ts | 100 | 100 | 100 | 100 | - lookup.ts | 100 | 96.55 | 100 | 100 | 114 - match.ts | 100 | 100 | 100 | 100 | - merge.ts | 100 | 100 | 100 | 100 | - out.ts | 100 | 100 | 100 | 100 | - project.ts | 100 | 96.15 | 100 | 100 | 39,82,184 - redact.ts | 100 | 94.73 | 100 | 100 | 51 - replaceRoot.ts | 100 | 100 | 100 | 100 | - replaceWith.ts | 100 | 100 | 100 | 100 | - sample.ts | 100 | 100 | 100 | 100 | - set.ts | 100 | 100 | 100 | 100 | - ...ndowFields.ts | 100 | 95.45 | 100 | 100 | 241-242,245 - skip.ts | 100 | 100 | 100 | 100 | - sort.ts | 100 | 92.3 | 100 | 100 | 114,128 - sortByCount.ts | 100 | 100 | 100 | 100 | - unionWith.ts | 100 | 100 | 100 | 100 | - unset.ts | 100 | 100 | 100 | 100 | - unwind.ts | 100 | 100 | 100 | 100 | - ...ors/projection | 100 | 93.33 | 100 | 100 | - elemMatch.ts | 100 | 90 | 100 | 100 | 17 - index.ts | 100 | 100 | 100 | 100 | - slice.ts | 100 | 100 | 100 | 100 | - ...perators/query | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - ...rs/query/array | 100 | 100 | 100 | 100 | - all.ts | 100 | 100 | 100 | 100 | - elemMatch.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - size.ts | 100 | 100 | 100 | 100 | - .../query/bitwise | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - bitsAllClear.ts | 100 | 100 | 100 | 100 | - bitsAllSet.ts | 100 | 100 | 100 | 100 | - bitsAnyClear.ts | 100 | 100 | 100 | 100 | - bitsAnySet.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - ...ery/comparison | 100 | 100 | 100 | 100 | - eq.ts | 100 | 100 | 100 | 100 | - gt.ts | 100 | 100 | 100 | 100 | - gte.ts | 100 | 100 | 100 | 100 | - in.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - lt.ts | 100 | 100 | 100 | 100 | - lte.ts | 100 | 100 | 100 | 100 | - ne.ts | 100 | 100 | 100 | 100 | - nin.ts | 100 | 100 | 100 | 100 | - .../query/element | 100 | 100 | 100 | 100 | - exists.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - type.ts | 100 | 100 | 100 | 100 | - ...ery/evaluation | 100 | 100 | 100 | 100 | - expr.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - jsonSchema.ts | 100 | 100 | 100 | 100 | - mod.ts | 100 | 100 | 100 | 100 | - regex.ts | 100 | 100 | 100 | 100 | - where.ts | 100 | 100 | 100 | 100 | - .../query/logical | 100 | 100 | 100 | 100 | - and.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - nor.ts | 100 | 100 | 100 | 100 | - not.ts | 100 | 100 | 100 | 100 | - or.ts | 100 | 100 | 100 | 100 | - ...erators/update | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - addToSet.ts | 100 | 100 | 100 | 100 | - bit.ts | 100 | 100 | 100 | 100 | - currentDate.ts | 100 | 100 | 100 | 100 | - inc.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - max.ts | 100 | 100 | 100 | 100 | - min.ts | 100 | 100 | 100 | 100 | - mul.ts | 100 | 100 | 100 | 100 | - pop.ts | 100 | 100 | 100 | 100 | - pull.ts | 100 | 100 | 100 | 100 | - pullAll.ts | 100 | 100 | 100 | 100 | - push.ts | 100 | 100 | 100 | 100 | - rename.ts | 100 | 100 | 100 | 100 | - set.ts | 100 | 100 | 100 | 100 | - unset.ts | 100 | 100 | 100 | 100 | - ...erators/window | 100 | 96.25 | 100 | 100 | - _internal.ts | 100 | 100 | 100 | 100 | - denseRank.ts | 100 | 100 | 100 | 100 | - derivative.ts | 100 | 80 | 100 | 100 | 35 - ...mentNumber.ts | 100 | 100 | 100 | 100 | - expMovingAvg.ts | 100 | 100 | 100 | 100 | - index.ts | 100 | 100 | 100 | 100 | - integral.ts | 100 | 75 | 100 | 100 | 36 - linearFill.ts | 100 | 100 | 100 | 100 | - locf.ts | 100 | 100 | 100 | 100 | - minMaxScaler.ts | 100 | 88.88 | 100 | 100 | 44 - rank.ts | 100 | 100 | 100 | 100 | - shift.ts | 100 | 100 | 100 | 100 | - src/util | 100 | 99.59 | 98.52 | 100 | - _hash.ts | 100 | 100 | 100 | 100 | - _internal.ts | 100 | 99.54 | 98.24 | 100 | 311,501 - index.ts | 100 | 100 | 100 | 100 | --------------------|---------|----------|---------|---------|-------------------