summaryrefslogtreecommitdiff
path: root/test/etap/064-kt-counting.t
blob: dd00cedd17b48bb729b266cbb89521d9d0a3e77a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env escript
%% -*- erlang -*-

main(_) ->
    code:add_pathz("src/couchdb"),
    etap:plan(4),
    case (catch test()) of
        ok ->
            etap:end_tests();
        Other ->
            etap:diag(io_lib:format("Test died abnormally: ~p", [Other])),
            etap:bail(Other)
    end,
    ok.

test() ->
    EmptyTree = [],
    One = [{0, {"1","foo",[]}}],
    TwoChildSibs = [{0, {"1","foo", [{"1a", "bar", []}, {"1b", "bar", []}]}}],
    Stemmed = [{2, {"1bb", "boo", []}}],
    
    etap:is(0, couch_key_tree:count_leafs(EmptyTree),
        "Empty trees have no leaves."),

    etap:is(1, couch_key_tree:count_leafs(One),
        "Single node trees have a single leaf."),

    etap:is(2, couch_key_tree:count_leafs(TwoChildSibs),
        "Two children siblings counted as two leaves."),
    
    etap:is(1, couch_key_tree:count_leafs(Stemmed),
        "Stemming does not affect leaf counting."),
    
    ok.