--- loncom/homework/default_homework.lcpm 2004/03/16 15:31:52 1.73 +++ loncom/homework/default_homework.lcpm 2004/03/16 19:47:47 1.74 @@ -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.73 2004/03/16 15:31:52 albertel Exp $ +# $Id: default_homework.lcpm,v 1.74 2004/03/16 19:47:47 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,16 +40,20 @@ $deg2rad=$pi/180.0; $"=' '; sub caparesponse_check { + my ($answer,$response)=@_; #not properly used yet: calc #not to be used: $ans_fmt - my ($type,$tol,$sig,$ans_fmt,$unit,$calc,$samples) = - eval $_[2]. - ';return ($__LC__type,$__LC__tol,$__LC__sig,$__LC__ans_fmt,$__LC__unit,$__LC__calc,$__LC__samples);'; + my $type=$LONCAPA::CAPAresponse_args{'type'}; + my $tol=$LONCAPA::CAPAresponse_args{'tol'}; + my $sig=$LONCAPA::CAPAresponse_args{'sig'}; + my $ans_fmt=$LONCAPA::CAPAresponse_args{'ans_fmt'}; + my $unit=$LONCAPA::CAPAresponse_args{'unit'}; + my $calc=$LONCAPA::CAPAresponse_args{'calc'}; + my $samples=$LONCAPA::CAPAresponse_args{'samples'}; my $tol_type=''; # gets it's value from whether tol has a % or not done my $sig_lbound=''; #done my $sig_ubound=''; #done - my ($answer,$response,$expr)=@_; #type's definitons come from capaParser.h @@ -68,7 +72,7 @@ sub caparesponse_check { if (length($response) > 500) { return "TOO_LONG: Answer too long"; } if ($type eq '' ) { - $message .= "Didn't find a type :$type:$expr: defaulting\n"; + $message .= "Didn't find a type :$type: defaulting\n"; if ( $answer eq ($answer *1.0)) { $type = 2; } else { $type = 3; } } else { @@ -134,20 +138,21 @@ sub caparesponse_check { elsif ($result =='12') { $result='WANTED_NUMERIC'; } 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$expr",$reterror); + 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); } sub caparesponse_check_list { - my ($response,$expr)=@_; + my $response=$LONCAPA::CAPAresponse_args{'response'}; my ($result,@list); - @list=@CAPARESPONSE_CHECK_LIST_answer; + @list=@LONCAPA::CAPAresponse_answer; my $aresult=''; my $current_answer; my $answers=join(':',@list); $result.="Got response :$answers:\n"; + &LONCAPA_INTERNAL_DEBUG("Yo! got ".join(':',%LONCAPA::CAPAresponse_args)); my @responselist; - my $type =eval $expr.';return $__LC__type;'; + my $type = $LONCAPA::CAPAresponse_args{'type'}; $result.="Got type :$type:\n"; if ($type ne '' && $#list > 0) { (@responselist)=split /,/,$response; @@ -175,12 +180,10 @@ sub caparesponse_check_list { my $thisanswer=$list[$i]; $result.="trying answer :$thisanswer:\n"; if ($unit eq '') { - ($aresult,$msg)=&caparesponse_check($thisanswer,$responselist[$i], - $expr); + ($aresult,$msg)=&caparesponse_check($thisanswer,$responselist[$i]); } else { ($aresult,$msg)=&caparesponse_check($thisanswer, - $responselist[$i]." $unit", - $expr); + $responselist[$i]." $unit"); } my ($temp)=split /:/, $aresult; $awards.="$temp,";