| #!/bin/sh |
| |
| test_description='basic tests for the SHA1 array implementation' |
| . ./test-lib.sh |
| |
| echo20 () { |
| prefix="${1:+$1 }" |
| shift |
| while test $# -gt 0 |
| do |
| echo "$prefix$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1" |
| shift |
| done |
| } |
| |
| test_expect_success 'ordered enumeration' ' |
| echo20 "" 44 55 88 aa >expect && |
| { |
| echo20 append 88 44 aa 55 && |
| echo for_each_unique |
| } | test-sha1-array >actual && |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'ordered enumeration with duplicate suppression' ' |
| echo20 "" 44 55 88 aa >expect && |
| { |
| echo20 append 88 44 aa 55 && |
| echo20 append 88 44 aa 55 && |
| echo for_each_unique |
| } | test-sha1-array >actual && |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'lookup' ' |
| { |
| echo20 append 88 44 aa 55 && |
| echo20 lookup 55 |
| } | test-sha1-array >actual && |
| n=$(cat actual) && |
| test "$n" -eq 1 |
| ' |
| |
| test_expect_success 'lookup non-existing entry' ' |
| { |
| echo20 append 88 44 aa 55 && |
| echo20 lookup 33 |
| } | test-sha1-array >actual && |
| n=$(cat actual) && |
| test "$n" -lt 0 |
| ' |
| |
| test_expect_success 'lookup with duplicates' ' |
| { |
| echo20 append 88 44 aa 55 && |
| echo20 append 88 44 aa 55 && |
| echo20 lookup 55 |
| } | test-sha1-array >actual && |
| n=$(cat actual) && |
| test "$n" -ge 2 && |
| test "$n" -le 3 |
| ' |
| |
| test_expect_success 'lookup non-existing entry with duplicates' ' |
| { |
| echo20 append 88 44 aa 55 && |
| echo20 append 88 44 aa 55 && |
| echo20 lookup 66 |
| } | test-sha1-array >actual && |
| n=$(cat actual) && |
| test "$n" -lt 0 |
| ' |
| |
| test_expect_success 'lookup with almost duplicate values' ' |
| { |
| echo "append 5555555555555555555555555555555555555555" && |
| echo "append 555555555555555555555555555555555555555f" && |
| echo20 lookup 55 |
| } | test-sha1-array >actual && |
| n=$(cat actual) && |
| test "$n" -eq 0 |
| ' |
| |
| test_expect_success 'lookup with single duplicate value' ' |
| { |
| echo20 append 55 55 && |
| echo20 lookup 55 |
| } | test-sha1-array >actual && |
| n=$(cat actual) && |
| test "$n" -ge 0 && |
| test "$n" -le 1 |
| ' |
| |
| test_done |