version 1.11, 2000/11/22 00:00:54
|
version 1.12, 2000/11/29 00:51:57
|
Line 9 sub caparesponse_check {
|
Line 9 sub caparesponse_check {
|
my $type=''; #done |
my $type=''; #done |
my $tol_type=''; # gets it's value from whether tol has a % or not done |
my $tol_type=''; # gets it's value from whether tol has a % or not done |
my $tol=''; #done |
my $tol=''; #done |
|
my $sig=''; |
my $sig_lbound=''; |
my $sig_lbound=''; |
my $sig_ubound=''; |
my $sig_ubound=''; |
my $ans_fmt=''; |
my $ans_fmt=''; |
Line 16 sub caparesponse_check {
|
Line 17 sub caparesponse_check {
|
my $calc=''; |
my $calc=''; |
my ($response,$expr)=@_; |
my ($response,$expr)=@_; |
|
|
($answer,$type,$tol,$sig_lbound,$sig_ubound,$ans_fmt, |
($answer,$type,$tol,$sig,$ans_fmt, |
$units,$calc) = eval $expr.'return $answer,$type,$tol,$sig_lbound,$sig_ubound,$ans_fmt,$units,$calc'; |
$units,$calc) = eval $expr.';return $answer,$type,$tol,$sig,$ans_fmt,$units,$calc'; |
|
|
#type's definitons come from capaParser.h |
#type's definitons come from capaParser.h |
if ($type eq '' ) { |
if ($type eq '' ) { |
if ( $answer eq ($answer *1.0)) { $type = 2; |
if ( $answer eq ($answer *1.0)) { $type = 2; |
Line 37 sub caparesponse_check {
|
Line 37 sub caparesponse_check {
|
$tol_type=1; #TOL_ABSOLUTE |
$tol_type=1; #TOL_ABSOLUTE |
} else { |
} else { |
if ($tol =~ /%$/) { |
if ($tol =~ /%$/) { |
$tol=chop($tol); |
chop $tol; |
$tol_type=2; #TOL_PERCENTAGE |
$tol_type=2; #TOL_PERCENTAGE |
} else { |
} else { |
$tol_type=1; #TOL_ABSOLUTE |
$tol_type=1; #TOL_ABSOLUTE |
} |
} |
} |
} |
|
|
|
if ($sig eq '') { |
|
$sig_lbound = 0; #SIG_LB_DEFAULT |
|
$sig_ubound =15; #SIG_UB_DEFAULT |
|
} else { |
|
($sig_lbound,$sig_ubound) = split /,/,$sig; |
|
} |
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
my $result = &caparesponse_capa_check_answer($response,$answer,$type, |
$tol_type,$tol, |
$tol_type,$tol, |
$sig_lbound,$sig_ubound, |
$sig_lbound,$sig_ubound, |
$ans_fmt, $units,$calc); |
$ans_fmt,$units,$calc); |
|
|
if ($result == '1') { $result='EXACT_ANS'; } |
if ($result == '1') { $result='EXACT_ANS'; } |
elsif ($result == '2') { $result='APPROX_ANS'; } |
elsif ($result == '2') { $result='APPROX_ANS'; } |
Line 62 sub caparesponse_check {
|
Line 69 sub caparesponse_check {
|
elsif ($result =='12') { $result='WANTED_NUMERIC'; } |
elsif ($result =='12') { $result='WANTED_NUMERIC'; } |
else {$result = "ERROR: Unknown Result: $result";} |
else {$result = "ERROR: Unknown Result: $result";} |
|
|
return "$result:$tol:$tol_type"; |
return "$result:$error:$answer:$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$units"; |
} |
} |
|
|
sub tex { |
sub tex { |