Hi again -

When using MathObjects, if a student responds to a question asking for an interval with an incorrect response, they receive the message "Can't convert an Empty Value to a Real Number"

Am I coding something incorrect? Is it possible to coerce Webwork into giving a more meaningful message (to me, it would be preferable to simply say "incorrect").

I've copied below sample code which exhibits the problem.

Thanks,

Adam

---------

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

DOCUMENT();

loadMacros(

"PGstandard.pl", # Standard macros for PG language

"MathObjects.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;

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

#

# Setup

#

#

Context("Numeric");

$pi = Real("pi");

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

#

# Text

#

#

Context()->texStrings;

BEGIN_TEXT

Let \(r(t)\) be the signed distance of a point from the origin at time \(t\) seconds. Suppose that \( r(t) = 1 + \sin(2t) \). Suppose that the object begin movement at time \(t = 0\) and ceases movement at time \(t = 2\pi\). On what interval is the object's distance from the origin at least \(\frac32\)? Express your answer as an interval. If necessary, use "U" for union.

$BR

\{ans_rule(40)\}

END_TEXT

Context()->normalStrings;

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

#

# Answers

#

#

Context("Interval");

$int = Compute("[pi/12, 5pi/12] U [13pi/12, 18pi/12]");

ANS($int->cmp());

ENDDOCUMENT();

### Can't convert an empty value to a real number on incorrect interval response

by Adam Weyhaupt -
In reply to Adam Weyhaupt
Friday, 27 June 2008, 7:03 PM

### Re: Can't convert an empty value to a real number on incorrect interval response

by Michael Gage -
Try using Context("Interval"); from the beginning of the problem.

I think that the fact that pi was defined when you are in numeric context

might be causing the response you indicate.

Context("Interval");

$int = Compute("[pi/12, 5pi/12] U [13pi/12, 18pi/12]");

TEXT($int->cmp->evaluate("45")->pretty_print);

Gave me a sensible error message. (pi is automatically defined

in Interval context.):

"Your answer isn't an interval, set or union (it looks like a real number)"

I think that the fact that pi was defined when you are in numeric context

might be causing the response you indicate.

Context("Interval");

$int = Compute("[pi/12, 5pi/12] U [13pi/12, 18pi/12]");

TEXT($int->cmp->evaluate("45")->pretty_print);

Gave me a sensible error message. (pi is automatically defined

in Interval context.):

"Your answer isn't an interval, set or union (it looks like a real number)"

In reply to Adam Weyhaupt
Saturday, 28 June 2008, 2:22 PM

### Re: Can't convert an empty value to a real number on incorrect interval response

by Davide Cervone -
This was an error in the MathObjects code for checking unions. I have fixed it in the latest version of pg/lib/Value/AnswerCheckers.pm, which you can obtain from the CVS repository. Thanks for reporting the bug.

Davide

Davide