Widget:WJG Sandbox Merge: Difference between revisions

Jump to navigation Jump to search
No edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 996: Line 996:
function answerSubmitted(event) {
function answerSubmitted(event) {
$("#submit").remove();
$("#submit").remove();
if (!window.exam.examQuestions[window.exam.currentQuestion].creditReceived && window.exam.examQuestions[window.exam.currentQuestion].selectedAnswer === window.exam.examQuestions[window.exam.currentQuestion].RightAnswer) {
if (!window.exam.examQuestions[window.exam.currentQuestion].creditReceived && window.exam.examQuestions[window.exam.currentQuestion].selectedAnswer === String(window.exam.examQuestions[window.exam.currentQuestion].RightAnswer)) {
console.log("You answered a question correctly")
console.log("You answered a question correctly")
window.exam.answeredRight += 1;
window.exam.answeredRight += 1;
Line 1,065: Line 1,065:
$("#details").slideToggle("slow");
$("#details").slideToggle("slow");
}
}
function convolve_bernouli(qprobs){
//takes in an array of probabilities of guessing questions correct
for (var counter = 0; counter < qprobs.length; counter++) {
//if the loop is in the first iteration, then initialize the array
if (counter==0){
    var pdfArray=[1-qprobs[0],qprobs[0]];
}else{
    //initialize new Array for pdfs
    var newpdfArray= [];
  for (var i = 0; i < pdfArray.length+1; i+=1) {
        newpdfArray[i]=0;
    }
    //multiply by ones first
  for (var i = 0; i < pdfArray.length; i+=1) {
        newpdfArray[i+1]+=pdfArray[i]*qprobs[counter]; //probability of adding a success
        newpdfArray[i]+=pdfArray[i]*(1-qprobs[counter]);
    }
   
    pdfArray=newpdfArray;
}
}
console.log(pdfArray);
return(pdfArray);
}//ends convolve_bernouli
function endExam(event) {
function endExam(event) {
if (window.exam.timer) {
if (window.exam.timer) {
Line 1,075: Line 1,102:
datas = "";
datas = "";
datas += "<br />You answered " + window.exam.answeredRight + " out of " + window.exam.examQuestions.length + " correctly.<br /> Your percentage score is: ";
datas += "<br />You answered " + window.exam.answeredRight + " out of " + window.exam.examQuestions.length + " correctly.<br /> Your percentage score is: ";
var percent = (window.exam.answeredRight / window.exam.examQuestions.length) * 100;
var percent = Math.round((window.exam.answeredRight / window.exam.examQuestions.length) * 100);
datas += percent + "%<br /><br />Click the Navigation Buttons on the left to review the questions you answered.";
testlength=window.exam.examQuestions.length;
var question_probs=[];
for (var j = 0; j < testlength; j+=1){
    question_probs[j]=Math.random();
}
qdist=convolve_bernouli(question_probs);
 
var myTotal = 0;  //Variable to hold your total
 
for(var i=0, len=window.exam.answeredRight+1; i<len; i++){
    myTotal += qdist[i];  //Iterate over your first array and then grab the second element add the values up
}
 
 
datas += percent + "%<br /><br />Click the Navigation Buttons on the left to review the questions you answered.<br />";
datas += "<br />You scored in the " + Math.round(myTotal*100) + " percentile. <br /><br />";
 
datas += "<canvas id='simExams' width='600' height='400'></canvas>";
 
 
var api = new mw.Api();
var api = new mw.Api();


Line 1,092: Line 1,138:
$(".navPaneButton").unbind('click');
$(".navPaneButton").unbind('click');
$(".navPaneButton").click(window.exam, questionReviewNavigation);
$(".navPaneButton").click(window.exam, questionReviewNavigation);
point_labels=[];
for (var j = 0; j < qdist.length; j+=1){
    point_labels[j]=j.toString();
}
var simExamData = {
                labels : point_labels,
                datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,1)",
pointColor : "rgba(220,220,220,1)",
pointStrokeColor : "#fff",
data : qdist,
title: "Percent of test takers"
}
            ]
            }
var newopts = {
yAxisLabel : "Percent of test takers",
yAxisFontFamily : "'Arial'",
yAxisFontSize : 16,
yAxisFontStyle : "normal",
yAxisFontColor : "#666",
xAxisLabel : "Number of correct answers",
legend : false,
legendFontFamily : "'Arial'",
legendFontSize : 12,
legendFontStyle : "normal",
legendFontColor : "#666",
legendBlockSize : 15,
legendBorders : false,
legendBordersColor : "#666",
graphTitle : "Peer Performance",
graphTitleFontFamily : "'Arial'",
graphTitleFontSize : 24,
graphTitleFontStyle : "bold",
graphTitleFontColor : "#666",
}
            // get line chart canvas
            var simExams = document.getElementById('simExams').getContext('2d');
            // draw line chart
            new Chart(simExams).Line(simExamData,newopts);
}
}
function submitRating(ratingType, score, page) {
function submitRating(ratingType, score, page) {
if (ratingType === "difficulty") {
if (ratingType === "difficulty") {

Latest revision as of 02:08, 11 August 2014