hghave: add check for zstd support
Not all configurations will support zstd. Add a check so we can
conditionalize tests.
test 'a\nc\n\n\n\n' 'a\nb\n\n\n'
test 'a\nb\nc\n' 'a\nc\n'
test '' ''
test 'a\nb\nc' 'a\nb\nc'
test 'a\nb\nc\nd\n' 'a\nd\n'
test 'a\nb\nc\nd\n' 'a\nc\ne\n'
test 'a\nb\nc\n' 'a\nc\n'
test 'a\n' 'c\na\nb\n'
test 'a\n' ''
test 'a\n' 'b\nc\n'
test 'a\n' 'c\na\n'
test '' 'adjfkjdjksdhfksj'
test '' 'ab'
test '' 'abc'
test 'a' 'a'
test 'ab' 'ab'
test 'abc' 'abc'
test 'a\n' 'a\n'
test 'a\nb' 'a\nb'
showdiff(
'x\n\nx\n\nx\n\nx\n\nz\n',
'x\n\nx\n\ny\n\nx\n\nx\n\nz\n'):
'x\n\nx\n\n'
6 6 '' -> 'y\n\n'
'x\n\nx\n\nz\n'
showdiff(
'x\n\nx\n\nx\n\nx\n\nz\n',
'x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n'):
'x\n\nx\n\n'
6 6 '' -> 'y\n\n'
'x\n\n'
9 9 '' -> 'y\n\n'
'x\n\nz\n'
showdiff(
'a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n',
'a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n'):
0 0 '' -> 'a\nb\nb\n'
'a\nb\nb\nb\nc\n.\n'
12 12 '' -> 'b\nc\n.\n'
'd\ne\n'
16 18 '.\n' -> ''
'f\n'
done
done
Nice diff for a trivial change:
showdiff(
'<0\n-\n<1\n-\n<2\n-\n<3\n-\n<4\n-\n',
'>0\n-\n>1\n-\n>2\n-\n>3\n-\n>4\n-\n'):
0 3 '<0\n' -> '>0\n'
'-\n'
5 8 '<1\n' -> '>1\n'
'-\n'
10 13 '<2\n' -> '>2\n'
'-\n'
15 18 '<3\n' -> '>3\n'
'-\n'
20 23 '<4\n' -> '>4\n'
'-\n'
Diff 1 to 3 lines - preference for appending:
showdiff(
'a\n',
'a\na\na\n'):
'a\n'
2 2 '' -> 'a\na\n'
Diff 1 to 5 lines - preference for appending:
showdiff(
'a\n',
'a\na\na\na\na\n'):
'a\n'
2 2 '' -> 'a\na\na\na\n'
Diff 3 to 1 lines - preference for removing trailing lines:
showdiff(
'a\na\na\n',
'a\n'):
'a\n'
2 6 'a\na\n' -> ''
Diff 5 to 1 lines - preference for removing trailing lines:
showdiff(
'a\na\na\na\na\n',
'a\n'):
'a\n'
2 10 'a\na\na\na\n' -> ''