[LON-CAPA-users] Custom Response is buggy on a particular problem

Seema Ali sali at vsb.bc.ca
Thu Nov 8 20:22:21 EST 2012


Sorry but I'm not sure how to test out the custom response, to be able to pin point why something isn't working.  I created a question and it works for most of the few test cases I went through, but it isn't working on one particular test case, which I put in the code.  Does anyone know why it isn't working?

The question randomly generates a binomial and divides it by a monomial.

I'm super stuck on this one and I don't know why.  I used similar custom response in other questions that seemed to be working.

Thanks.

>From Seema.



<problem>
<script type="loncapa/perl">
sub numbervariable
{
  $expression = shift;
  $variable   = shift;
  $temp = length($expression);
  $expression =~ s/($variable)/~~/g;
  return length($expression) - $temp;
}

$factor1 = &random(-1,1,2) * &random(2,12,1);
$factor2 = &random(-1,1,2) * &random(2,12,1);
$factor3 = &random(-1,1,2) * &random(2,12,1);

$product1 = $factor1 * $factor2;
$product2 = $factor1 * $factor3;

#numerator exponents
$e11 = &random(5,9,1);
$e12 = &random(5,9,1);
$e21 = &random(5,9,1);
$e22 = &random(5,9,1);

#denominator exponents
$e31 = &random(0,5,1);
$e32 = &random(0,5,1);

#testcase 1 not working
$product1 = 24;
$e11 = 5;
$e12 = 8;
$product2 = -72;
$e21 = 7;
$e22 = 5;
$factor1 = -6;
$e31=4;
$e32=0;
#answer should be: 12*x^3*y^5-4*x*y^8, it worked once

$numerator = &cas('maxima', "$product1 * x^$e11 * y^$e12 + $product2 * x^$e21 * y^$e22");
$denominator = &cas('maxima', "$factor1 * x^$e31 * y^$e32");
$answer = &cas('maxima', "trigsimp(($numerator)/($denominator))");

$numerator =~ s/\*//g;
$denominator =~ s/\*//g;</script><startouttext />Simpify.
<m eval='on'>
\[
  \frac{$numerator}{$denominator}
\]
</m><br />

Answer:<endouttext />
<customresponse answerdisplay="$answer">
    <answer type="loncapa/perl">$userinput = $submission;
$correct = $answer;

$num_x = numbervariable($userinput,'x');
$num_y = numbervariable($userinput,'y');

$ans_x = numbervariable($correct,'x');
$ans_y = numbervariable($correct,'y');

#$equivalent = &cas('maxima',"is(trigsimp(trigreduce($submission-$answer)=0))");
$equivalent = &cas('maxima',"is(trigsimp($submission=$answer))");

if(($num_x==$ans_x) && ($num_y==$ans_y) && ($equivalent eq "true")){ return 'EXACT_ANS'; }
else{return 'INCORRECT';}</answer>
    <textline readonly="no" />
    <hintgroup showoncorrect="no">
    <startouttext /><endouttext />
    </hintgroup>
</customresponse>
</problem>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.lon-capa.org/pipermail/lon-capa-users/attachments/20121109/bffc664c/attachment-0001.html>


More information about the LON-CAPA-users mailing list