Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.251 and 1.253

version 1.251, 2012/02/10 00:25:53 version 1.253, 2012/12/14 11:17:09
Line 446  sub check_submission { Line 446  sub check_submission {
     }      }
   
     my (@final_awards,@final_msgs,@names);      my (@final_awards,@final_msgs,@names);
       # $Apache::lonxml::debug = 1; # DEBUG
     foreach my $name (keys(%answer)) {      foreach my $name (keys(%answer)) {
  &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} }));   &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} }));
   
Line 456  sub check_submission { Line 457  sub check_submission {
  my ($result,@msgs) =    my ($result,@msgs) = 
     &Apache::run::run("&caparesponse_check_list()",$safeeval);      &Apache::run::run("&caparesponse_check_list()",$safeeval);
  &Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0));   &Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0));
           
  &Apache::lonxml::debug('msgs are '.join(':',@msgs));   &Apache::lonxml::debug('msgs are '.join(':',@msgs));
  my ($awards)=split(/:/,$result);   my ($awards)=split(/:/,$result);
  my @awards= split(/,/,$awards);   my @awards= split(/,/,$awards);
Line 465  sub check_submission { Line 465  sub check_submission {
  push(@final_msgs,$msg);   push(@final_msgs,$msg);
  push(@names,$name);   push(@names,$name);
     }      }
       # $Apache::lonxml::debug = 0; # DEBUG
     my ($ad, $msg, $name) = &Apache::inputtags::finalizeawards(\@final_awards,      my ($ad, $msg, $name) = &Apache::inputtags::finalizeawards(\@final_awards,
        \@final_msgs,         \@final_msgs,
        \@names,1);         \@names,1);
Line 784  sub end_numericalresponse { Line 785  sub end_numericalresponse {
     $ans.=" $cleanunit";      $ans.=" $cleanunit";
  }   }
     }      }
       #
       # The computer's response must be cast in a form that 
       # ensures it has sufficient significant figures.
       # the only way to do this is to sprintf it into scientific notation
       # due to the ambiguity of trailing zeros.
       # See Bug 6577
       #
       my ($sigMax, $sigmin) = &get_sigrange($Apache::inputtags::params{'sig'});
       my $sigfigs = $sigMax-1;
   
       for (my $i = 0; $i < scalar @$response; $i++) {
    $response->[$i] = sprintf('%.' . $sigfigs . 'e', $response->[$i]);
       }
     my ($ad,$msg)=&check_submission($response,$partid,$id,$tag,      my ($ad,$msg)=&check_submission($response,$partid,$id,$tag,
     $parstack,$safeeval);      $parstack,$safeeval);
     if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') {      if ($ad ne 'EXACT_ANS' && $ad ne 'APPROX_ANS') {
Line 970  sub make_numerical_bubbles { Line 984  sub make_numerical_bubbles {
     my $number_of_bubbles =       my $number_of_bubbles = 
  &Apache::response::get_response_param($part.'_'.$id,'numbubbles',8);   &Apache::response::get_response_param($part.'_'.$id,'numbubbles',8);
   
       #
       # Fixes for BZ 6519 - number of bubbles <= 0 or non-integer.
       # 
       $number_of_bubbles = int($number_of_bubbles + 0.5);
       if ($number_of_bubbles <= 0) {
    $number_of_bubbles = 8;
       }
       
   
     my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval);      my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval);
     my $name = (exists($answer{$tag_internal_answer_name})       my $name = (exists($answer{$tag_internal_answer_name}) 
  ? $tag_internal_answer_name   ? $tag_internal_answer_name

Removed from v.1.251  
changed lines
  Added in v.1.253


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>