--- loncom/homework/default_homework.lcpm 2008/06/12 00:46:52 1.136 +++ loncom/homework/default_homework.lcpm 2008/09/27 07:26:45 1.141 @@ -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.136 2008/06/12 00:46:52 www Exp $ +# $Id: default_homework.lcpm,v 1.141 2008/09/27 07:26:45 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -254,7 +254,7 @@ sub caparesponse_check { &LONCAPA_INTERNAL_DEBUG("RetError $reterror: Answer $answer: Response $response: type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|"); &LONCAPA_INTERNAL_DEBUG(" $answer $response $result "); - return ($result,$reterror) + return ($result,$reterror); } @@ -303,7 +303,7 @@ sub caparesponse_check_list { &LONCAPA_INTERNAL_DEBUG("Initial final response :$responses->[0][-1]:"); my $unit; - if ($type eq '' || $type eq 'float') { + if ($type eq 'float' || $type eq '') { #for numerical problems split off the unit # if ( $responses->[0][-1]=~ /(.*[^\s])\s+([^\s]+)/ ) { if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.\s\,][\$\s\w\^\*\/\(\)\+\-]*)$/ ) { @@ -316,9 +316,11 @@ sub caparesponse_check_list { $unit=~s/\s//; foreach my $response (@$responses) { foreach my $element (@$response) { - $element =~ s/\s//g; + if (($type eq 'float') || (($type eq '') && ($unit ne ''))) { + $element =~ s/\s//g; + } my $appendunit=$unit; - if ($unit=~/\%/) { + if (($unit=~/\%/) && ($answerunit ne '%')) { $element=$element/100; $appendunit=~s/\%//; } @@ -424,10 +426,12 @@ sub caparesponse_check_list { } sub cas { - my ($system,$input)=@_; + my ($system,$input,$library)=@_; my $output; if ($system eq 'maxima') { - $output=&maxima_eval($input); + $output=&maxima_eval($input,$library); + } else { + $output='Error: unrecognized CAS'; } return $output; }