From: Mike G. v. a. <we...@ma...> - 2007-11-10 21:04:13
|
Log Message: ----------- Made changes in the way the default values for answer evaluators are set. (They were frequently undefined.) We now get them from the envir variable which seems to work. For example: $functAbsTolDefault = PG_restricted_eval(q/$envir{functAbsTolDefault}/); Modified Files: -------------- pg/macros: PGanswermacros.pl PGfunctionevaluators.pl PGnumericevaluators.pl Revision Data ------------- Index: PGnumericevaluators.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/PGnumericevaluators.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -Lmacros/PGnumericevaluators.pl -Lmacros/PGnumericevaluators.pl -u -r1.1 -r1.2 --- macros/PGnumericevaluators.pl +++ macros/PGnumericevaluators.pl @@ -78,12 +78,12 @@ my $user_context; sub _PGnumericevaluators_init { $CA = PG_restricted_eval(q/$CA/); - $numAbsTolDefault = PG_restricted_eval(q/$numAbsTolDefault/); - $numFormatDefault = PG_restricted_eval(q/$numFormatDefault/); - $numRelPercentTolDefault = PG_restricted_eval(q/$numRelPercentTolDefault/); - $numZeroLevelDefault = PG_restricted_eval(q/$numZeroLevelDefault/); - $numZeroLevelTolDefault = PG_restricted_eval(q/$numZeroLevelTolDefault/); - $useOldAnswerMacros = PG_restricted_eval(q/$useOldAnswerMacros/); + $numAbsTolDefault = PG_restricted_eval(q/$envir{numAbsTolDefault}/); + $numFormatDefault = PG_restricted_eval(q/$envir{numFormatDefault}/); + $numRelPercentTolDefault = PG_restricted_eval(q/$envir{numRelPercentTolDefault}/); + $numZeroLevelDefault = PG_restricted_eval(q/$envir{numZeroLevelDefault}/); + $numZeroLevelTolDefault = PG_restricted_eval(q/$envir{numZeroLevelTolDefault}/); + $useOldAnswerMacros = PG_restricted_eval(q/$envir{useOldAnswerMacros}/); unless ($useOldAnswerMacros) { $user_context = PG_restricted_eval(q/\%context/); $Context = sub { Parser::Context->current($user_context, @_) }; @@ -378,7 +378,8 @@ if( defined( $out_options{'units'} ) ) { $ans = "$ans $out_options{'units'}"; - push( @output_list, NUM_CMP( 'correctAnswer' => $ans, + push( @output_list, NUM_CMP( + 'correctAnswer' => $ans, 'tolerance' => $out_options{'tolerance'}, 'tolType' => $out_options{'tolType'}, 'format' => $out_options{'format'}, @@ -392,26 +393,28 @@ } elsif( defined( $out_options{'strings'} ) ) { - push( @output_list, NUM_CMP( 'correctAnswer' => $ans, - 'tolerance' => $out_options{tolerance}, - 'tolType' => $out_options{tolType}, - 'format' => $out_options{'format'}, - 'mode' => $out_options{'mode'}, - 'zeroLevel' => $out_options{'zeroLevel'}, + push( @output_list, NUM_CMP( + 'correctAnswer' => $ans, + 'tolerance' => $out_options{tolerance}, + 'tolType' => $out_options{tolType}, + 'format' => $out_options{'format'}, + 'mode' => $out_options{'mode'}, + 'zeroLevel' => $out_options{'zeroLevel'}, 'zeroLevelTol' => $out_options{'zeroLevelTol'}, - 'debug' => $out_options{'debug'}, - 'strings' => $out_options{'strings'}, + 'debug' => $out_options{'debug'}, + 'strings' => $out_options{'strings'}, ) ); } else { push(@output_list, - NUM_CMP( 'correctAnswer' => $ans, + NUM_CMP( + 'correctAnswer' => $ans, 'tolerance' => $out_options{tolerance}, 'tolType' => $out_options{tolType}, 'format' => $out_options{'format'}, 'mode' => $out_options{'mode'}, 'zeroLevel' => $out_options{'zeroLevel'}, - 'zeroLevelTol' => $out_options{'zeroLevelTol'}, + 'zeroLevelTol' => $out_options{'zeroLevelTol'}, 'debug' => $out_options{'debug'}, ), ); @@ -552,9 +555,9 @@ sub std_num_cmp_list { my ( $relPercentTol, $format, @answerList) = @_; - + #FIXME? errors if not defined? my %options = ( 'relTol' => $relPercentTol, - 'format' => $format, + 'format' => $format, ); set_default_options( \%options, @@ -945,7 +948,7 @@ # my @keys = qw(correctAnswer tolerance tolType format mode zeroLevel zeroLevelTol debug); foreach my $key (@keys) { - warn "$key must be defined in options when calling NUM_CMP" + warn( "$key must be defined in options when calling NUM_CMP" ) unless defined($num_params{$key}); } Index: PGanswermacros.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/PGanswermacros.pl,v retrieving revision 1.64 retrieving revision 1.65 diff -Lmacros/PGanswermacros.pl -Lmacros/PGanswermacros.pl -u -r1.64 -r1.65 --- macros/PGanswermacros.pl +++ macros/PGanswermacros.pl @@ -143,10 +143,10 @@ my $useBaseTenLog; sub _PGanswermacros_init { $BR = PG_restricted_eval(q/$BR/); - $functLLimitDefault = PG_restricted_eval(q/$functLLimitDefault/); - $functULimitDefault = PG_restricted_eval(q/$functULimitDefault/); - $functVarDefault = PG_restricted_eval(q/$functVarDefault/); - $useBaseTenLog = PG_restricted_eval(q/$useBaseTenLog/); + $functLLimitDefault = PG_restricted_eval(q/$envir{functLLimitDefault}/); + $functULimitDefault = PG_restricted_eval(q/$envir{functULimitDefault}/); + $functVarDefault = PG_restricted_eval(q/$envir{functVarDefault}/); + $useBaseTenLog = PG_restricted_eval(q/$envir{useBaseTenLog}/); } Index: PGfunctionevaluators.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/PGfunctionevaluators.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -Lmacros/PGfunctionevaluators.pl -Lmacros/PGfunctionevaluators.pl -u -r1.1 -r1.2 --- macros/PGfunctionevaluators.pl +++ macros/PGfunctionevaluators.pl @@ -71,17 +71,17 @@ my $useOldAnswerMacros; my $user_context; sub _PGfunctionevaluators_init { - $functAbsTolDefault = PG_restricted_eval(q/$functAbsTolDefault/); - $functLLimitDefault = PG_restricted_eval(q/$functLLimitDefault/); - $functMaxConstantOfIntegration = PG_restricted_eval(q/$functMaxConstantOfIntegration/); - $functNumOfPoints = PG_restricted_eval(q/$functNumOfPoints/); - $functRelPercentTolDefault = PG_restricted_eval(q/$functRelPercentTolDefault/); - $functULimitDefault = PG_restricted_eval(q/$functULimitDefault/); - $functVarDefault = PG_restricted_eval(q/$functVarDefault/); - $functZeroLevelDefault = PG_restricted_eval(q/$functZeroLevelDefault/); - $functZeroLevelTolDefault = PG_restricted_eval(q/$functZeroLevelTolDefault/); - $inputs_ref = PG_restricted_eval(q/$inputs_ref/); - $useOldAnswerMacros = PG_restricted_eval(q/$useOldAnswerMacros/); + $functAbsTolDefault = PG_restricted_eval(q/$envir{functAbsTolDefault}/); + $functLLimitDefault = PG_restricted_eval(q/$envir{functLLimitDefault}/); + $functMaxConstantOfIntegration = PG_restricted_eval(q/$envir{functMaxConstantOfIntegration}/); + $functNumOfPoints = PG_restricted_eval(q/$envir{functNumOfPoints}/); + $functRelPercentTolDefault = PG_restricted_eval(q/$envir{functRelPercentTolDefault}/); + $functULimitDefault = PG_restricted_eval(q/$envir{functULimitDefault}/); + $functVarDefault = PG_restricted_eval(q/$envir{functVarDefault}/); + $functZeroLevelDefault = PG_restricted_eval(q/$envir{functZeroLevelDefault}/); + $functZeroLevelTolDefault = PG_restricted_eval(q/$envir{functZeroLevelTolDefault}/); + $inputs_ref = PG_restricted_eval(q/$envir{inputs_ref}/); + $useOldAnswerMacros = PG_restricted_eval(q/$envir{useOldAnswerMacros}/); unless ($useOldAnswerMacros) { $user_context = PG_restricted_eval(q/\%context/); $Context = sub { Parser::Context->current($user_context, @_) }; |