From: dpvc v. a. <we...@ma...> - 2010-02-08 14:55:59
|
Log Message: ----------- Make sure variable substitution has occured BEFORE switching the contexts (so we don't get an undefined variable message); contexts must agree in order to compare the two. Modified Files: -------------- pg/macros: parserFormulaUpToConstant.pl Revision Data ------------- Index: parserFormulaUpToConstant.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/parserFormulaUpToConstant.pl,v retrieving revision 1.23 retrieving revision 1.24 diff -Lmacros/parserFormulaUpToConstant.pl -Lmacros/parserFormulaUpToConstant.pl -u -r1.23 -r1.24 --- macros/parserFormulaUpToConstant.pl +++ macros/parserFormulaUpToConstant.pl @@ -163,7 +163,7 @@ # sub compare { my ($l,$r) = @_; my $self = $l; my $context = $self->context; - $r = Value::makeValue($r,context=>$context); + $r = Value::makeValue($r,context=>$context) unless Value::isValue($r); # # Not equal if the student value is constant or has no + C # @@ -173,6 +173,7 @@ # If constants aren't the same, substitute the professor's in the student answer. # $r = $r->substitute($r->{constant}=>$l->{constant}) unless $r->{constant} eq $l->{constant}; + $r->context($context) unless $r->context == $context; # # Compare with adaptive parameters to see if $l + n00 C = $r for some n0. |