Commit Graph

14 Commits

Author SHA1 Message Date
3f03936cfb General cleanup and performance review changes
- move to transducer for walking the tagged range boundary items
- remove use of core.match, after getting logic correct to reduce
  loading of unneeded library
- added docstrings to function
- added type hints and removed reflection warnings
2026-01-15 20:34:01 -06:00
9ffa5d1b97 performance increases
memoize construction of ranges, and use transient/mutable
Java collections for internal collection state
2026-01-13 21:01:46 -06:00
df24a84908 tests pass 2026-01-11 20:56:37 -06:00
caf5bda249 add next/prev values to ordered-range-value building
put the previous value on the start boundaries and a the next
value on the end boundaries
2026-01-11 16:58:34 -06:00
98a9fd43fe walk sequence of range boundaries values for source and filter ranges
add lower level logic for walking the boundary markers of sets
but distinguish between a source range and a filter range when
looking at the start and end boundary behavior
2026-01-11 16:58:10 -06:00
211efb5d16 move form deftype to defrecord for easier set comparison
deftype gives different object instances which causes comparisons
of sets with different instances to fail, as it check the instance
equality instead of value equality, which can be provided by
using defrecord instead of deftype
2026-01-11 16:17:50 -06:00
d0c78810f0 add transducer step to combine abutting ranges
ranges have previously been consolidated by having overlapping ranges be
combined, resuting in a (possibly) consolidated set of ranges, which
are now ordered by start and end dates.

Add a transducer step to walk those ranges and find any pairs of ranges
where the pair of ranges abutt each other, and combine them into
a single range.
2026-01-10 18:34:09 -06:00
98761a79ea consolidate overlapping ranges
transduce over the ordered range values starts and ends and do the
stack push/pop matching over the start and end values to consolidate
the overlapping ranges and result in a new set of consolidated and
sorted range values.
2026-01-10 18:04:33 -06:00
725906c2e8 create ordered sequence of the given ranges' start and end values 2026-01-10 17:21:22 -06:00
2f654bc1e2 start of protocol for discrete value ranges 2026-01-10 17:08:52 -06:00
Chris Hapgood
73731422c2 Add bonus test for unbounded ranges 2024-06-12 23:01:27 -04:00
Chris Hapgood
7a9cd81fb6 Add README and example test 2024-06-06 17:29:49 -04:00
Chris Hapgood
44aa7c8efd Add the performance test
It takes ~12 seconds to complete the performance test on a 2023 MacBook Pro
with an Apple M2 Pro processor and 32G of RAM.
2024-06-06 17:01:14 -04:00
Chris Hapgood
92f61a3b69 Create initial project structure with tests and reader 2024-06-06 15:38:31 -04:00