#!/bin/bash

# POSIX 2008 compliant expand tests.
# Copyright 2012 by Jonathan Clairembault <jonathan@clairembault.fr>

[ -f testing.sh ] && . testing.sh

# some basic tests

testing "default" "expand input" "        foo     bar\n" "\tfoo\tbar\n" ""
testing "default stdin" "expand"  "        foo     bar\n" "" "\tfoo\tbar\n"
testing "single" "expand -t 2 input" "  foo bar\n" "\tfoo\tbar\n" ""
testing "tablist" "expand -t 5,10,12 input" "     foo  bar foo\n" "\tfoo\tbar\tfoo\n" ""
testing "backspace" "expand input" "foobarfoo\b\b bar\n" "foobarfoo\b\b\tbar\n" ""

# advanced tests

POW=15
TABSTOP=1
BIGTAB=" "
for i in $(seq $POW); do
    BIGTAB=$BIGTAB$BIGTAB
    TABSTOP=$[$TABSTOP*2]
done
testing "long tab single" "expand -t $TABSTOP input" "${BIGTAB}foo\n" "\tfoo\n" ""
testing "long tab tablist" "expand -t $TABSTOP,$[TABSTOP+5] input" \
        "${BIGTAB}foo  bar\n" "\tfoo\tbar\n" ""

testing "multiline single" "expand -t 4 input" "foo \n    bar\n" "foo\t\n\tbar\n" ""
testing "multiline tablist" "expand -t 4,8 input" \
        "foo     bar\n    bar foo\n" "foo\t\tbar\n\tbar\tfoo\n" ""
POW=15
BIGLINE="foo "
for i in $(seq $POW); do
    BIGLINE=$BIGLINE$BIGLINE
done
if [ $POW -gt 0 ]; then
    EXPANDLINE="${BIGLINE}        foo\n"
else
    EXPANDLINE="${BIGLINE}    foo\n"
fi
BIGLINE="${BIGLINE}\tfoo\n"
testing "long line single" "expand input" \
        "${EXPANDLINE}" "$BIGLINE" ""
