WeBWorK Problems

Bug (?) in Fraction context with mixed numbers of the form 0 a/b

Number of replies: 2
In the Fraction context, when allowProperFractions is set, 0 a/b is interpreted as -a/b. For example, in the following example, 0 1/6 is marked correct, while the correct answer is -1/6.

Am I doing something wrong?

Thanks,

########################################################################

DOCUMENT();

"PGstandard.pl", # Standard macros for PG language
"MathObjects.pl",
"contextFraction.pl",
#"source.pl", # allows code to be displayed on certain sites.
#"PGcourse.pl", # Customization file for the course
);

# Print problem number and point value (weight) for the problem
TEXT(beginproblem());

# Show which answers are correct and which ones are incorrect
$showPartialCorrectAnswers = 1; Context("Fraction"); Context()->flags->set(allowProperFractions=>1);$a = Compute("1/2");
$b = Compute("1/3");$ans = Compute(-$a*$b);

Context()->texStrings;
BEGIN_TEXT
$$-a * b$$ \{ans_rule(35)\}
END_TEXT
Context()->normalStrings;

ANS($ans->cmp()); ENDDOCUMENT(); In reply to Adam Weyhaupt Re: Bug (?) in Fraction context with mixed numbers of the form 0 a/b by Adam Weyhaupt - I guess that the problems is in contextFraction.pl. Instead of # # For proper fractions, add the integer to the fraction # sub _eval { my ($self,$a,$b)= @_;
return ($a > 0 ?$a + $b :$a - $b); } it should be # # For proper fractions, add the integer to the fraction # sub _eval { my ($self,$a,$b)= @_;
return ($a >= 0 ?$a + $b :$a - \$b);
}