fixes #780;adjusted test to avoid array conversion

This commit is contained in:
Todd Gruben 2017-08-22 16:09:03 -05:00
parent dbbdabef05
commit 343ff04399
2 changed files with 28 additions and 10 deletions

View file

@ -3218,9 +3218,14 @@ func xorCompare(x *xorstm) (r1 interval16, has_data bool) {
r1 = interval16{start: x.va.start, last: x.vb.start - 1}
has_data = true
}
x.va.start = x.vb.last + 1
if x.va.start > x.va.last {
if x.vb.last == 65535 {
x.va_valid = false
} else {
x.va.start = x.vb.last + 1
if x.va.start > x.va.last {
x.va_valid = false
}
}
} else if x.vb.start <= x.va.start && x.vb.last >= x.va.last { //va inside
@ -3230,26 +3235,39 @@ func xorCompare(x *xorstm) (r1 interval16, has_data bool) {
has_data = true
}
x.vb.start = x.va.last + 1
if x.vb.start > x.vb.last {
if x.va.last == 65535 {
x.vb_valid = false
} else {
x.vb.start = x.va.last + 1
if x.vb.start > x.vb.last {
x.vb_valid = false
}
}
} else if x.va.start < x.vb.start && x.va.last <= x.vb.last { //va first overlap
x.va_valid = false
r1 = interval16{start: x.va.start, last: x.vb.start - 1}
has_data = true
x.vb.start = x.va.last + 1
if x.vb.start > x.vb.last {
if x.va.last == 65535 {
x.vb_valid = false
} else {
x.vb.start = x.va.last + 1
if x.vb.start > x.vb.last {
x.vb_valid = false
}
}
} else if x.vb.start < x.va.start && x.vb.last <= x.va.last { //vb first overlap
x.vb_valid = false
r1 = interval16{start: x.vb.start, last: x.va.start - 1}
has_data = true
x.va.start = x.vb.last + 1
if x.va.start > x.va.last {
if x.vb.last == 65535 {
x.va_valid = false
} else {
x.va.start = x.vb.last + 1
if x.va.start > x.va.last {
x.va_valid = false
}
}
}
return

View file

@ -1834,8 +1834,8 @@ func TestXorRunRun(t *testing.T) {
},
{
aruns: []interval16{{start: 65530, last: 65535}},
bruns: []interval16{{start: 65531, last: 65535}},
exp: []interval16{{start: 65530, last: 65530}},
bruns: []interval16{{start: 65532, last: 65535}},
exp: []interval16{{start: 65530, last: 65531}},
},
}
for i, test := range tests {