Файл: Бастау бизнес тест жауаптары. Жобаа атысандарды барлыына рахмет, біра мен бл жауаптарды жарияладым! Бастау серверлерінен тест жауаптарыны барлы деректерін алуа кмектескен код бизнес жолдарды соында (сынатарды артында).docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2023
Просмотров: 3372
Скачиваний: 312
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
қайтару;
}
JSON талдауын қайтару(json);
}
функция эквивалентСұрақ(questionObject1, questionObject2) {
эквивалент болсын;
эквивалент = questionObject1.question == questionObject2.question && questionObject1.answers.length == questionObject2.answers.length;
//эквивалент = баламалы && questionObject1.fakeAnswerSelected == questionObject2.fakeAnswerSelected;
үшін (x = 0 болсын; эквивалент && x < questionObject2.answers.length; ++x) {
эквивалент = questionObject1.answers.indexOf(questionObject2.answers[x]) != -1;
}
қайтару баламасы;
}
функциясы _get_corrected_question(json) {
json=json?? _load();
егер (json == нөл)
қайтару -1;
//зерттеу жауаптары қажет пе?
// Бұл қасиеттің міндеті - көптеген оң жауаптарды іздеу.
//Тестті аяқтамас үшін дұрыс жауаптарды қате деп енгізіңіз.
//Дұрыс жауап болса, тест автоматты түрде аяқталады, бұған жол бермеу керек
түзетілген болсын = 0;
үшін (x = 0; x < json.length; ++x) {
if (json[x].correctAnswer != -1) {
++түзетілген;
}
}
қайтару түзетілді;
}
getQuestonFromNode(id) функциясы {
let q = $("#сұрақ" + id);
let qname = $("#question" + id + " .test____question").text();
let answList = [];
let answNode = $("#question" + id + " .test____жауаптар div енгізуі»);
таңдаулы болсын = 0; // әдепкі ретінде орнату
үшін (болсын y = 0; y < answNode.length; ++y) {
let anod = answNode[y];
answList.push(анод.мән);
егер(анод.тексерілген)
таңдалған=y;
}
қайтару {
questionIndex: (id - 1), // сұрақтың салыстырмалық көрсеткіші
сұрақ: qname, // сұрақ атауы
жауаптар: жауаптар тізімі, // жауаптар
дұрысЖауап: -1, // таңдалмаған
fakeAnswerSelected: таңдалған, // жалған индекс
қатеЖауаптар: [] // бұл probeAnsswers
};
}
// json-ға жергілікті тірі (html) жауаптарды индекстеу
генерациялау функциясы (json) {
json=json?? _load();
егер (json == нөл) {
console.error («init талап етеді»);
қайтару -1;
}
санау = 0;
let ids = Math.floor($("#pills-tabContent")[0].childNodes.length / 4); // сұрақ санын алу
үшін (мүмкіндік идентификаторы = 1; идентификатор <= идентификаторы; ++ идентификаторы) {
let node = getQuestonFromNode(id);
үшін (x = 0 болсын; x < идентификаторлар; ++x) {
if (equivalentQuestion(json[x], түйін)) {
json[x].questionIndex = id - 1;
++санау;
үзіліс;
}
}
}
қайтару саны;
}
//бұл бастапқы
init() функциясы
json = [] болсын;
let ids = Math.floor($("#pills-tabContent")[0].childNodes.length / 4); // сұрақ санын алу
үшін (мүмкіндік идентификаторы = 1; идентификатор <= идентификаторы; ++ идентификаторы) {
json.push(getQuestonFromNode(id));
}
_сақтау(json);
//БҰЗУ
//hack();
}
функция stat() {
json = _load();
егер (json == нөл)
қайтару {күйі: «сәтсіз»};
//зерттеу жауаптары қажет пе?
// Бұл қасиеттің міндеті - көптеген оң жауаптарды іздеу.
//Тестті аяқтамас үшін дұрыс жауаптарды қате деп енгізіңіз.
//Дұрыс жауап болса, тест автоматты түрде аяқталады, бұған жол бермеу керек
түзетілген болсын = 0;
let hackIterations = 0;
duplicateQ = 0 болсын;
үшін (x = 0; x < json.length; ++x) {
if (json[x].correctAnswer != -1) {
++түзетілген;
}
hackIterations += json[x].incorrectAnswers.length + 1;
үшін (y = x + 1 болсын; y < json.length; ++y) {
егер (эквивалентті сұрақ(json[x], json[y]))
++ duplicateQ;
}
}
қайтару {
мәртебесі: «сәттілік»,
Сұрақтар: json.length
Түзетілген сұрақ: дұрыс,
Қате сұрақ: json.length - түзетілді,
Қайталанатын сұрақтар: duplicateQ,
HackIterations: hackIterations
};
}
RemoveMark(json) функциясы {
json=json?? _load();
үшін (x = 0; x < json.length; ++x) {
json[x].fakeAnswerSelected = -1;
}
json қайтару;
}
function hack(json) {
json=json?? _load();
егер (json == нөл) {
console.log("соңғы нәтиже орындалмады. Күйі: іске қосылмаған");
ішінде();
жалған қайтару;
}
let questionCount = json.length;
json = жою белгісі (json);
//зерттеу жауаптары қажет пе?
// Бұл қасиеттің міндеті - көптеген оң жауаптарды іздеу.
//Тестті аяқтамас үшін дұрыс жауаптарды қате деп енгізіңіз.
//Дұрыс жауап болса, тест автоматты түрде аяқталады, бұған жол бермеу керек
let probeFakeAnswer = _get_corrected_question(json) != questionCount;
console.warn("Зерттеу (жалған жауап) = " + probeFakeAnswer);
let answerSelected = 0;
//жаңа сынақтан табу
үшін (x = 1 болсын; x <= questionCount; ++x) {
let q = $("#сұрақ" + x);
let qname = $("#question" + x + " .test____question").text();
hJsonIndex болсын;
heuristicAnswerIndex;
үшін (hJsonIndex = 0; hJsonIndex < json.length;) {
//Сұрақ json(деректер) ішінен табылды
егер (equivalentQuestion(json[hJsonIndex], getQuestonFromNode(x)) && json[hJsonIndex].question.toLowerCase() == qname.toLowerCase()) {
json[hJsonIndex].questionIndex = x - 1; // тікелей html-ден сұрақ индексін орнату (салыстырмалы рандомизацияланған индекс)
heuristicAnswerIndex = json[hJsonIndex].correctAnswer; // дұрыс жауап па?
let answersLength = json[hJsonIndex].answers.length;
// дұрыс жауапты эвристикалық табу
//1-қадам. Табылмады
егер (heuristicAnswerIndex == -1) {
үшін (z = 0 болсын; z < answersLength; ++z) {
let validator = json[hJsonIndex].incorrectAnswers.indexOf(z);
егер (валидатор != -1) {
жалғастыру;
}
//жақсы, тегін жауаптар табылды. келесі тексеру.
heuristicAnswerIndex = z;
үзіліс;
}
егер (heuristicAnswerIndex == -1) // опс! Дұрыс жауаптар емес
{
console.error("дұрыс жауаптар жеткілікті! бұзу сәтсіз аяқталды.");
жалған қайтару;
}
//жүктелген дұрыс жауапты тексеру
} else if (probeFakeAnswer) {
//дұрыс деп дұрыс орнатыңыз
heuristicAnswerIndex = heuristicAnswerIndex - 1;
heuristicAnswerIndex = heuristicAnswerIndex < 0 ? (answersLength - 1) : эвристикалықЖауап индексі;
}
console.warn("таңдалған жауаптар: " + heuristicAnswerIndex);
//белгі ретінде дұрыс жауапты таңдаңыз
//ЕСКЕРТПЕ: салыстырмалы көрсеткішке абсолютті индекс
let htmlAnswerNodes = $("#question" + x + " .test____answers div input");
let localSelected=false;
үшін (болсын y = 0; y < htmlAnswerNodes.length; ++y) {
let inode = htmlAnswerNodes[y]; // тірі html деректері
егер (inode.value == json[hJsonIndex].answers[heuristicAnswerIndex]) {
inode.checked = шын; // белгіні орнату
answerSelected++;
localSelected=true;
үзіліс;
}
}
егер (!localSelected) {
console.error("Сұраққа жауап таңдалмаған: " + json[hJsonIndex].questionIndex + " " + json[hJsonIndex].question);
console.error(json[hJsonIndex].жауаптар);
жалған қайтару;
}
json[hJsonIndex].fakeAnswerSelected = heuristicAnswerIndex;// белгі ретінде орнату
үзіліс;
}
++hJsonIndex;
}
//келесі түймесі
let eee = $("#сұрақ" + x + " .сұрақ___келесі");
//жіберу
eee = eee.length == 0 ? $("#question" + x + " .Sb") : eee;
егер (eee.length > 0)
eee[0].click();
}
_сақтау(json);
шындықты қайтару;
}
// тексеру режимін тексеріңіз
v(json) функциясы
json=json?? _load();
егер (json == нөл) {
console.log("соңғы нәтиже орындалмады. init()");
жалған қайтару;
}
console.warn("Алдыңғы json");
console.warn(JSON.parse(JSON.stringify(json)));
let q = $("#test-tab li");
let len = q ұзындығы;
үшін (x = 0; x < len; x++ болсын) {
let index = json[x].questionIndex;
if (json[x].fakeAnswerSelected == -1) {
console.error("Назар аударыңыз. Қате табылды, fakeAnswerSelected == -1 өрісінде жауап тестілеу үшін таңдалмады. Өзгерістер қолданылмаған. Мен соңғы нәтижені көрсетіп жатырмын");
console.log(_load());
console.log(stats());
жалған қайтару;
}
//ЕСКЕРТПЕ: Жауап қолжетімді, бұл элементті өткізіп жіберіңіз
if (json[x].correctAnswer == -1) {
егер (q[индекс].attributes.class.value == "сәттілік") {
if (json[x].correctAnswer == -1) {
console.warn("Сұраққа жауап бұзылды:" + json[x].question + " correct = " + json[x].answers[json[x].fakeAnswerSelected] + "бұзу әрекеттері: " + json[x ]. incorrectAnswers.length);
json[x].correctAnswer = json[x].fakeAnswerSelected; // дұрыс жауапты орнату
}
}
басқа {
json[x].incorrectAnswers.push(json[x].fakeAnswerSelected); // қате жауап қосу (жалған)
//1 жауап қалды және бұл дұрыс жауап!
егер (json[x].answers.length - 1 == json[x].incorrectAnswers.length) {
//json[x].incorrectAnswers= []; // анық
үшін (y = 0 болсын; y < json[x].жауаптар.ұзындығы; ++y) {
let _find = json[x].incorrectAnswers.indexOf(y);
//бұл дұрыс жауап
егер (_табыңыз == -1) {
json[x].correctAnswer = y;
үзіліс;
}
}
}
}
//белгіні алып тастау
json[x].fakeAnswerSelected = -1;
}
басқа {
console.warn("Сұраққа жауап: (" + json[x].questionIndex + ") " + json[x].question + " - алынып тасталды = жарамды");
}
}
_сақтау(json);
console.log(stats());
шындықты қайтару;
}