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