fix and test rev

This commit is contained in:
alex 2022-01-27 08:28:13 +00:00
parent cba0084e3d
commit 2756155b7c
2 changed files with 14 additions and 5 deletions

View File

@ -452,18 +452,22 @@ class Pattern {
}
rev() {
var pat = this
var query = function(span) {
var cycle = span.begin.sam()
var next_cycle = span.begin.nextSam()
var reflect = function(to_reflect) {
var reflected = to_reflect.withTime(time => cycle + (next_cycle - time))
[reflected.begin, reflected.end] = [reflected.end, reflected.begin]
var reflected = to_reflect.withTime(time => cycle.add(next_cycle.sub(time)))
// [reflected.begin, reflected.end] = [reflected.end, reflected.begin] -- didn't work
var tmp = reflected.begin
reflected.begin = reflected.end
reflected.end = tmp
return reflected
}
var haps = this.query(reflect(span))
return haps.map(hap => hap.with_span(reflect))
var haps = pat.query(reflect(span))
return haps.map(hap => hap.withSpan(reflect))
}
return Pattern(query).split_queries()
return new Pattern(query)._splitQueries()
}
// jux(func, by=1) {

View File

@ -115,4 +115,9 @@ describe('Pattern', function() {
assert.deepStrictEqual(slowcat([pure("a"), pure("b")])._early(1).firstCycle.map(x => x.value), ["b"])
})
})
describe('rev()', function () {
it('Can reverse things', function () {
assert.deepStrictEqual(fastcat([pure("a"), pure("b"), pure("c")]).rev().firstCycle.sort((a,b) => a.part.begin.sub(b.part.begin)).map(a => a.value), ["c", "b","a"])
})
})
})