/code/Text-NSP-1.09/Testing/statistic/error-handling.sh
Shell | 586 lines | 325 code | 151 blank | 110 comment | 39 complexity | f4bd4668d92b00e6cd53e1dd9be7846b MD5 | raw file
- #!/bin/csh -f
- # shell program to test statistic.pl's responses to various erroneous
- # conditions
- # Subtest 1: what happens when the ngram in the input file does not
- # have the expected number of tokens
- echo "Subtest 1"
- echo ""
- # input file
- set TESTFILE = "test-1.sub-1.cnt"
- set PERL5LIB = pwd
- # check if this file exists. if not, quit!
- if (!(-e $TESTFILE)) then
- echo "File $TESTFILE does not exist... aborting"
- exit
- endif
- # library file
- set LIB = "test_1_sub_3_d.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # subtest 1 a
- # test-1.sub-1.cnt has trigrams in it. so statistic.pl should be run with
- # --ngram 3. if no --ngram provided, then bigram is assumed and there
- # should be an error as defined in test-1.sub-1-a.reqd.
- # required output file
- set TARGETFILE = "test-1.sub-1-a.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl $LIB test-1.out $TESTFILE"
- statistic.pl $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # subtest 1 b
- # similarly, there should an error when --ngram 4 is used, as defined
- # in test-1.sub-1-b.reqd.
- # required output file
- set TARGETFILE = "test-1.sub-1-b.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 4 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 4 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # subtest 1 c
- # finally, there should be no complaint when using --ngram 3
- # required output file
- set TARGETFILE = "test-1.sub-1-c.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # Subtest 2: what happens when the number of frequency values in the
- # input file does not match with expected value (expected by default
- # from the --ngram setting or from the --set_freq_combo setting.
- echo "Subtest 2"
- echo ""
- # input file
- set TESTFILE = "test-1.sub-2.cnt"
- # check if this file exists. if not, quit!
- if (!(-e $TESTFILE)) then
- echo "File $TESTFILE does not exist... aborting"
- exit
- endif
- # library file
- set LIB = "test_1_sub_3_d.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # subtest 2 a
- # test-1.sub-2.cnt has trigrams in it, but with only 4 frequency
- # values as opposed to the possible 7. this file was created using
- # test-1.sub-2.freq_combo.txt file with the --set_freq_combo
- # switch. so statistic.pl should also be run with --set_freq_combo
- # test-1.sub-2.freq_combo.txt. Check what happens if we dont provide
- # this file!
- # required output file
- set TARGETFILE = "test-1.sub-2-a.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # subtest 2 b
- # there shouldnt be any problems if we use --set_freq_combo test-1.sub-2.freq_combo.txt
- # required output file
- set TARGETFILE = "test-1.sub-2-b.reqd"
- set FREQCOMBFILE = "test-1.sub-2.freq_combo.txt"
- # first check if these files exist. if any one does not, quit
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- if (!(-e $FREQCOMBFILE)) then
- echo "File $FREQCOMBFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 --set_freq_comb $FREQCOMBFILE $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 --set_freq_comb $FREQCOMBFILE $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # Subtest 3: what happens when the mandatory functions
- # initializeStatistic() and calculateStatistic() are not defined in
- # the statistic library file.
- echo "Subtest 3"
- echo ""
- # input file
- set TESTFILE = "test-1.sub-1.cnt"
- # check if this file exists. if not, quit!
- if (!(-e $TESTFILE)) then
- echo "File $TESTFILE does not exist... aborting"
- exit
- endif
- # subtest 3 a
- # statistical library file test_1_sub_3_a.pm neither defines nor
- # exports the symbols &calculateStatistic and &initializeStatistic
- # statistic.pl should give an error! note that since our testfile
- # test-1.sub-1.cnt has trigrams, we shall run statistic.pl with
- # --ngram 3
- # library file
- set LIB = "test_1_sub_3_a.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # required output file
- set TARGETFILE = "test-1.sub-3-a.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # subtest 3 b
- # statistical library file test_1_sub_3_b.pm defines
- # initializeStatistic but not calculateStatistic.
- # library file
- set LIB = "test_1_sub_3_b.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # required output file
- set TARGETFILE = "test-1.sub-3-b.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # subtest 3 c
- # statistical library file test_1_sub_3_c.pm defines
- # calculateStatistic but not initializeStatistic.
- # library file
- set LIB = "test_1_sub_3_c.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # required output file
- set TARGETFILE = "test-1.sub-3-c.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # subtest 3 d
- # statistical library file test_1_sub_3_d.pm defines both
- # calculateStatistic and initializeStatistic, so should not get any
- # errors on this one!
- # library file
- set LIB = "test_1_sub_3_d.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # required output file
- set TARGETFILE = "test-1.sub-3-d.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --ngram 3 $LIB test-1.out $TESTFILE"
- statistic.pl --ngram 3 $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # Subtest 4: what happens when the commandline is short on files?!
- echo "Subtest 4"
- echo ""
- # library file for all of subtest 4
- set LIB = "test_1_sub_3_d.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # subtest 4 a
- # run statistic.pl with only a library
- # required output file
- set TARGETFILE = "test-1.sub-4-a.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl $LIB"
- statistic.pl $LIB >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- # subtest 4 b
- # run statistic.pl with only a library and an output file
- # required output file
- set TARGETFILE = "test-1.sub-4-b.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl $LIB test-1.out"
- statistic.pl $LIB test-1.out >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # Subtest 5: what happens when the input frequency combinations dont
- # have the ngram frequency and a frequency cut off is requested?!
- echo "Subtest 5"
- echo ""
- # test file
- set TESTFILE = "test-1.sub-5.cnt"
- if (!(-e $TESTFILE)) then
- echo "File $TESTFILE does not exist... aborting"
- exit
- endif
- # freq combo file
- set FREQCOMBFILE = "test-1.sub-5.freq_comb.txt"
- if (!(-e $FREQCOMBFILE)) then
- echo "File $FREQCOMBFILE does not exist... aborting"
- exit
- endif
- # library file
- set LIB = "test_1_sub_3_d.pm"
- if (!(-e $LIB)) then
- echo "File $LIB does not exist... aborting"
- exit
- endif
- # file test-1.sub-5.cnt does not have the main ngram frequency and has
- # only the two marginal totals. a frequency cut off is meaningless
- # here, and should be warned off and ignored.
- # required output file
- set TARGETFILE = "test-1.sub-5.reqd"
- if (!(-e $TARGETFILE)) then
- echo "File $TARGETFILE does not exist... aborting"
- exit
- endif
- # now the test!
- echo "Test: statistic.pl --frequency 2 --set_freq_combo $FREQCOMBFILE $LIB test-1.out $TESTFILE"
- statistic.pl --frequency 2 --set_freq_combo $FREQCOMBFILE $LIB test-1.out $TESTFILE >& error.out
- # compare the error output with the required output
- diff error.out $TARGETFILE > difference
- if (-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in $TARGETFILE)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and $TARGETFILE :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference
- /bin/rm -f error.out
- /bin/rm -f test-1.out
- # Subtest 6: what happens when the tokens include internal marker <||>
- # Test added by Amruta during version 0.71
- echo "Subtest 6"
- echo ""
- echo "Test: statistic.pl ll test-1.out test-1.sub-6.cnt"
- statistic.pl ll test-1.out test-1.sub-6.cnt >& error.out
- diff error.out test-1.sub-6.reqd > difference
- if(-z difference) then
- echo "Status: OK\!\! Output error message matches target error message (as provided in test-1.sub-6.reqd)"
- else
- echo "Status: ERROR\!\! Following differences exist between error.out and test-1.sub-6.reqd :"
- cat difference
- endif
- echo ""
- /bin/rm -f difference error.out test-1.out
- /bin/mv -f test_1_sub_3_a.pm test_1_sub_3_a.pm_test
- /bin/mv -f test_1_sub_3_b.pm test_1_sub_3_b.pm_test
- /bin/mv -f test_1_sub_3_c.pm test_1_sub_3_c.pm_test
- /bin/mv -f test_1_sub_3_d.pm test_1_sub_3_d.pm_test
- /bin/mv -f test_2.pm test_2.pm_test
- /bin/mv -f Text/NSP/Measures/2D/test_1_sub_3_a.pm Text/NSP/Measures/2D/test_1_sub_3_a.pm_test
- /bin/mv -f Text/NSP/Measures/2D/test_1_sub_3_b.pm Text/NSP/Measures/2D/test_1_sub_3_b.pm_test
- /bin/mv -f Text/NSP/Measures/2D/test_1_sub_3_c.pm Text/NSP/Measures/2D/test_1_sub_3_c.pm_test
- /bin/mv -f Text/NSP/Measures/2D/test_1_sub_3_d.pm Text/NSP/Measures/2D/test_1_sub_3_d.pm_test
- /bin/mv -f Text/NSP/Measures/2D/test_2.pm Text/NSP/Measures/2D/test_2.pm_test
- /bin/mv -f Text/NSP/Measures/2D/test-1.pm Text/NSP/Measures/2D/test-1.pm_test
- /bin/mv -f Text/NSP/Measures/3D/test_1_sub_3_a.pm Text/NSP/Measures/3D/test_1_sub_3_a.pm_test
- /bin/mv -f Text/NSP/Measures/3D/test_1_sub_3_b.pm Text/NSP/Measures/3D/test_1_sub_3_b.pm_test
- /bin/mv -f Text/NSP/Measures/3D/test_1_sub_3_c.pm Text/NSP/Measures/3D/test_1_sub_3_c.pm_test
- /bin/mv -f Text/NSP/Measures/3D/test_1_sub_3_d.pm Text/NSP/Measures/3D/test_1_sub_3_d.pm_test
- /bin/mv -f Text/NSP/Measures/3D/test_2.pm Text/NSP/Measures/3D/test_2.pm_test