--- loncom/homework/default_homework.lcpm 2004/03/22 21:05:15 1.76 +++ loncom/homework/default_homework.lcpm 2004/05/17 21:15:56 1.79 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # -# $Id: default_homework.lcpm,v 1.76 2004/03/22 21:05:15 albertel Exp $ +# $Id: default_homework.lcpm,v 1.79 2004/05/17 21:15:56 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -135,7 +135,11 @@ sub caparesponse_check { elsif ($result == '9') { $result='ANS_CNT_NOT_MATCH'; } elsif ($result =='10') { $result='SUB_RECORDED'; } elsif ($result =='11') { $result='BAD_FORMULA'; } - elsif ($result =='12') { $result='WANTED_NUMERIC'; } + elsif ($result =='13') { $result='UNIT_INVALID_INSTRUCTOR'; } + elsif ($result =='141') { $result='UNIT_INVALID_STUDENT'; } + elsif ($result =='142') { $result='UNIT_INVALID_STUDENT'; } + elsif ($result =='143') { $result='UNIT_INVALID_STUDENT'; } + elsif ($result =='15') { $result='UNIT_IRRECONCIBLE'; } else {$result = "ERROR: Unknown Result:$result:$@:";} return ("$result:\nRetError $reterror:\nError $error:\nAnswer $answer:\nResponse $response:\n type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|\n$message",$reterror); @@ -480,6 +484,7 @@ sub format { if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } $fmt=~s/e/E/g; my $result=sprintf('%.'.$fmt,$value); + if ($fmt eq '0f') { $result .='.'; } $result=~s/(E[+-]*)0/$1/; if ($dollarmode) {$result=&dollarmode($result);} return $result; @@ -509,7 +514,7 @@ sub chemparse { my $molecule = $2; # subscripts - $molecule =~ s|(?<=[a-zA-Z\[\s])(\d+)|$1|g; + $molecule =~ s|(?<=[a-zA-Z\)\]\s])(\d+)|$1|g; # superscripts $molecule =~ s|\^(\d*[+\-]*)|$1|g; # strip whitespace @@ -532,6 +537,7 @@ sub prettyprint { if ($fmt =~ /chem/i) { return(&chemparse($value)); } if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } if ($fmt) { $value=sprintf('%.'.$fmt,$value); } + if ($fmt eq '0f') { $value .='.'; } if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/i ) { my $frac=$1; if ($dollarmode) { $frac=&dollarformat($frac); }