#!/bin/sh
set -e

tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT

cat > "$tmpdir/smoke.cpp" <<'EOF'
#include <structures/union_find.hpp>

int main() {
    structures::UnionFind uf(3);
    uf.union_groups(0, 1);
    if (uf.find_group(0) != uf.find_group(1)) {
        return 1;
    }
    if (uf.find_group(0) == uf.find_group(2)) {
        return 2;
    }
    return uf.group_size(0) == 2 ? 0 : 3;
}
EOF

g++ -std=c++14 -Wall -Wextra -o "$tmpdir/smoke" "$tmpdir/smoke.cpp" -lstructures
"$tmpdir/smoke"
ldd "$tmpdir/smoke" | grep -q 'libstructures\.so'
