|
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.
|