From: dpvc v. a. <we...@ma...> - 2005-12-31 15:04:11
|
Log Message: ----------- Added ability to specify variables that are part of the union/list rather than requiring just constants. E.g., interval_cmp("(1,a),(2a-1,a)",unions=>'no',var=>'a'); or interval_cmp("(x,y),(2x,3y)",unions=>'no',vars=>['x','y']); Modified Files: -------------- pg/macros: extraAnswerEvaluators.pl Revision Data ------------- Index: extraAnswerEvaluators.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/extraAnswerEvaluators.pl,v retrieving revision 1.13 retrieving revision 1.14 diff -Lmacros/extraAnswerEvaluators.pl -Lmacros/extraAnswerEvaluators.pl -u -r1.13 -r1.14 --- macros/extraAnswerEvaluators.pl +++ macros/extraAnswerEvaluators.pl @@ -344,6 +344,17 @@ $ans_type = 'String' if $string eq uc($correct_ans); } } + # Add any variables + $opts{vars} = $opts{var} if ($opts{var}); + if ($opts{vars}) { + $context->variables->are(); # clear old vars + $opts{vars} = [$opts{vars}] unless ref($opts{vars}) eq 'ARRAY'; + foreach my $v (@{$opts{vars}}) { + $context->variables->add($v=>'Real') + unless $context->variables->get($v); + } + } + my $ans_eval; Context($context); if($ans_type eq 'List') { |