#!/bin/sh
set -e

if [ -z "$AUTOPKGTEST_TMP" ]; then
    AUTOPKGTEST_TMP=$(mktemp -d)
    trap 'rm -rf "$AUTOPKGTEST_TMP"' EXIT INT TERM
fi

cd "$AUTOPKGTEST_TMP"

cat > test.gfa <<GFA
H	VN:Z:1.1
S	1	CAAATAAG
S	2	A
S	3	G
L	1	+	2	+	0M
L	2	+	3	+	0M
P	path	1+,2+,3+	*
GFA

# Command line tool: graph statistics and conversion round trip.
gfak stats -n test.gfa | grep -q 'Number of nodes: 3'
gfak convert -S 2.0 test.gfa > converted.gfa
grep -q '^S' converted.gfa
gfak convert -S 1.0 converted.gfa > roundtrip.gfa
grep -q '^S' roundtrip.gfa

# Library: parse a GFA and inspect the parsed graph.
cat > smoke.cpp <<'EOF'
#include <gfakluge.hpp>

#include <sstream>

int main()
{
    std::istringstream iss("H\tVN:Z:1.0\nS\t1\tCAAATAAG\nS\t2\tA\n"
                           "L\t1\t+\t2\t+\t0M\n");
    gfak::GFAKluge graph;
    graph.parse_gfa_file(iss);
    return graph.get_name_to_seq().size() == 2 ? 0 : 1;
}
EOF
g++ -std=c++11 -Wall -Wextra -o smoke smoke.cpp
./smoke
