<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Free Mock Test &#8211; Govt Job Exams</title>
	<atom:link href="https://govtjobexams.com/category/free-mock-test/feed/" rel="self" type="application/rss+xml" />
	<link>https://govtjobexams.com</link>
	<description>পশ্চিমবঙ্গ ও সর্বভারতীয় সরকারি চাকরির খবর এবং সরকারি প্রকল্পের আপডেট</description>
	<lastBuildDate>Sun, 05 Jul 2026 11:23:12 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://govtjobexams.com/wp-content/uploads/2026/06/cropped-ChatGPT-Image-May-14-2026-08_04_15-PM-1-32x32.png</url>
	<title>Free Mock Test &#8211; Govt Job Exams</title>
	<link>https://govtjobexams.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Free Science Mock Test 2026 &#124; General Science MCQ Quiz for Govt Exams</title>
		<link>https://govtjobexams.com/free-science-mock-test/</link>
					<comments>https://govtjobexams.com/free-science-mock-test/#respond</comments>
		
		<dc:creator><![CDATA[Deba]]></dc:creator>
		<pubDate>Sun, 05 Jul 2026 11:23:09 +0000</pubDate>
				<category><![CDATA[Free Mock Test]]></category>
		<guid isPermaLink="false">https://govtjobexams.com/?p=590</guid>

					<description><![CDATA[আমাদের এক্সপার্ট দ্বারা বাছাই করা, রেল, পুলিশ, গ্রাম পঞ্চায়েত, এসএসসি, PSC তে আসা প্রশ্ন গুলি দিয়ে একটি&#160; মক টেস্ট দেওয়া হলো , খুব শীঘ্রই আরো খুব গুরুত্বপূর্ণ প্রশ্ন দিয়ে মকটেস্ট এর আয়োজন হবে। এরকম ফ্রি তে মকটেস্ট দিতে, চাকুরীর খবর পেতে আমাদের হোয়াটস্যাপ এবং টেলিগ্রাম চ্যানেল ফলো করুন,&#160;আমাদের এই ওয়েবসাইট পেজে বিভিন্ন সরকারি চাকরির খবর, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">আমাদের এক্সপার্ট দ্বারা বাছাই করা, রেল, পুলিশ, গ্রাম পঞ্চায়েত, এসএসসি, PSC তে আসা প্রশ্ন গুলি দিয়ে একটি&nbsp; মক টেস্ট দেওয়া হলো , খুব শীঘ্রই আরো খুব গুরুত্বপূর্ণ প্রশ্ন দিয়ে মকটেস্ট এর আয়োজন হবে। এরকম ফ্রি তে মকটেস্ট দিতে, চাকুরীর খবর পেতে আমাদের হোয়াটস্যাপ এবং টেলিগ্রাম চ্যানেল ফলো করুন,&nbsp;আমাদের এই ওয়েবসাইট পেজে বিভিন্ন সরকারি চাকরির খবর, সরকারি প্রকল্প এমনকি চাকরির পরীক্ষা সংক্রান্ত এডমিট কার্ড, পরীক্ষার তারিখ , পরীক্ষার সিলেবাস, পরীক্ষার আনসার কি, পরীক্ষার রেজাল্ট সব তথ্য পাওয়ার পাশাপাশি পরীক্ষায় আসার মতো বিভিন্ন টপিকের উপর MCQ টেস্ট দিতে পারবেন। ভালো লাগলে অবশ্যই বন্ধুদের শেয়ার করে দিবেন।</p>



<p class="wp-block-paragraph">&nbsp;আপনার সাফল্য কামনা করি&nbsp;😍</p>


    <div id="gje_mock_3550_1785444017" class="gje-mock-wrap"
         data-src="https://cdn.jsdelivr.net/gh/GovtJobExams/General-Science@main/LifeScienceMock1.js"
         data-negative="0.25"
         data-per-question="30">

        <div class="gje-start-screen">
            <h2>জীবন বিজ্ঞানের গুরুত্বপূর্ণ প্রশ্ন - মক টেস্ট নং ০১</h2>
            <p class="gje-info-line">প্রতি প্রশ্নের সময়: <b>30 সেকেন্ড</b></p>
            <p class="gje-info-line">Negative Mark: <b>0.25</b></p>
            <p class="gje-total-msg">Total Question: <b>0</b></p>
            <button type="button" class="gje-start-btn" disabled>Start Mock Test</button>
            <p class="gje-load-msg"></p>
        </div>

        <div class="gje-test-screen" style="display:none;">
            <div class="gje-full-head">
                <h2>জীবন বিজ্ঞানের গুরুত্বপূর্ণ প্রশ্ন - মক টেস্ট নং ০১</h2>
                <button type="button" class="gje-exit-full">Exit Full Screen</button>
            </div>

            <div class="gje-topbar">
                <span>⏱ Time: <b class="gje-time">30</b>s</span>
                <span>Question: <b class="gje-qno">1</b>/<b class="gje-total">0</b></span>
                <span>Negative: <b>0.25</b></span>
            </div>

            <div class="gje-progress"><div class="gje-progress-fill"></div></div>
            <div class="gje-quiz-box">Loading questions...</div>

            <div class="gje-buttons">
                <button type="button" class="gje-prev">Previous</button>
                <button type="button" class="gje-next">Next / Skip</button>
                <button type="button" class="gje-submit">Submit Test</button>
            </div>

            <div class="gje-result-box"></div>
        </div>
    </div>

    <script>
    (function(){
        const root = document.getElementById('gje_mock_3550_1785444017');
        if(!root) return;

        let questions = [];
        let current = 0;
        let selected = [];
        let submitted = false;
        let started = false;
        let timerId = null;

        const src = root.dataset.src || '';
        const perQuestion = parseInt(root.dataset.perQuestion || '30');
        const negative = parseFloat(root.dataset.negative || '0.25');
        let qTime = perQuestion;

        const startScreen = root.querySelector('.gje-start-screen');
        const testScreen = root.querySelector('.gje-test-screen');
        const quizBox = root.querySelector('.gje-quiz-box');
        const resultBox = root.querySelector('.gje-result-box');
        const timeBox = root.querySelector('.gje-time');
        const qnoBox = root.querySelector('.gje-qno');
        const totalBox = root.querySelector('.gje-total');
        const progressFill = root.querySelector('.gje-progress-fill');
        const startBtn = root.querySelector('.gje-start-btn');
        const loadMsg = root.querySelector('.gje-load-msg');
        const totalMsg = root.querySelector('.gje-total-msg b');

        if(src){
            fetch(src, {cache: 'no-store'})
            .then(function(r){ return r.text(); })
            .then(function(js){
                const fakeWindow = {};
                const result = new Function(
                    'window',
                    js + '; return window.questions || window.gjeQuestions || (typeof questions !== "undefined" ? questions : []);'
                )(fakeWindow);

                questions = Array.isArray(result) ? result : [];
                totalMsg.textContent = questions.length;

                if(questions.length > 0){
                    startBtn.disabled = false;
                    startBtn.textContent = 'Start Mock Test';
                    loadMsg.style.display = 'none';
                } else {
                    startBtn.disabled = true;
                    loadMsg.innerHTML = '<span style="color:red;">Question পাওয়া যায়নি। JS file-এ questions array আছে কিনা check করুন।</span>';
                }
            })
            .catch(function(){
                startBtn.disabled = true;
                totalMsg.textContent = '0';
                loadMsg.innerHTML = '<span style="color:red;">CDN file load হয়নি। Link check করুন।</span>';
            });
        } else {
            startBtn.disabled = true;
            loadMsg.innerHTML = '<span style="color:red;">Shortcode-এ src URL দিন।</span>';
        }

        function getAnswerIndex(q){
            if(typeof q.answer === 'number') return q.answer;
            if(typeof q.ans === 'number') return q.ans;
            if(typeof q.correct === 'number') return q.correct;
            if(typeof q.answer === 'string' && Array.isArray(q.options)) return q.options.indexOf(q.answer);
            return -1;
        }

        function getQuestionText(q){
            return q.q || q.question || q.title || '';
        }

        function startTest(){
            if(started || questions.length === 0) return;
            started = true;
            selected = Array(questions.length).fill(null);
            totalBox.textContent = questions.length;
            startScreen.style.display = 'none';
            testScreen.style.display = 'block';
            openFullScreen(root);
            loadQuestion();
        }

        function openFullScreen(el){
            if(el.requestFullscreen) el.requestFullscreen().catch(function(){});
            else if(el.webkitRequestFullscreen) el.webkitRequestFullscreen();
            else if(el.msRequestFullscreen) el.msRequestFullscreen();
        }

        function closeFullScreen(){
            if(document.fullscreenElement && document.exitFullscreen) document.exitFullscreen();
            else if(document.webkitFullscreenElement && document.webkitExitFullscreen) document.webkitExitFullscreen();
        }

        function startQuestionTimer(){
            clearInterval(timerId);
            qTime = perQuestion;
            updateTimer();
            timerId = setInterval(function(){
                if(submitted) return clearInterval(timerId);
                qTime--;
                updateTimer();
                if(qTime <= 0){
                    clearInterval(timerId);
                    autoSkipQuestion();
                }
            }, 1000);
        }

        function updateTimer(){
            timeBox.textContent = qTime;
            if(qTime <= 5) timeBox.classList.add('gje-danger-time');
            else timeBox.classList.remove('gje-danger-time');
        }

        function autoSkipQuestion(){
            if(current < questions.length - 1){
                current++;
                loadQuestion();
            } else {
                submitTest();
            }
        }

        function loadQuestion(){
            if(submitted) return;
            const q = questions[current];
            qnoBox.textContent = current + 1;
            progressFill.style.width = (((current + 1) / questions.length) * 100) + '%';

            let html = '<div class="gje-question">Q' + (current + 1) + '. ' + escapeHtml(getQuestionText(q)) + '</div>';
            (q.options || []).forEach(function(op, i){
                html += '<label class="gje-option"><input type="radio" name="gje_option_gje_mock_3550_1785444017" ' + (selected[current] === i ? 'checked' : '') + ' data-index="' + i + '"> ' + escapeHtml(op) + '</label>';
            });

            quizBox.innerHTML = html;
            quizBox.querySelectorAll('input[type="radio"]').forEach(function(input){
                input.addEventListener('change', function(){
                    selected[current] = parseInt(this.dataset.index);
                });
            });
            startQuestionTimer();
        }

        function submitTest(){
            if(submitted) return;
            submitted = true;
            clearInterval(timerId);

            let correct = 0, wrong = 0, notAttempt = 0;
            questions.forEach(function(q, i){
                const ans = getAnswerIndex(q);
                if(selected[i] === null) notAttempt++;
                else if(selected[i] === ans) correct++;
                else wrong++;
            });

            const score = correct - (wrong * negative);
            let html = '<h3>Result</h3>' +
                '<div class="gje-result-grid">' +
                '<div>✅ Correct<br><b>' + correct + '</b></div>' +
                '<div>❌ Wrong<br><b>' + wrong + '</b></div>' +
                '<div>⚪ Not Attempted<br><b>' + notAttempt + '</b></div>' +
                '<div>🏆 Score<br><b>' + score.toFixed(2) + '</b></div>' +
                '</div><h3>Answer Review</h3>';

            questions.forEach(function(q, i){
                const ans = getAnswerIndex(q);
                html += '<div class="gje-review"><b>Q' + (i+1) + '. ' + escapeHtml(getQuestionText(q)) + '</b>';
                (q.options || []).forEach(function(op, j){
                    let cls = '';
                    if(j === ans) cls = ' gje-correct';
                    if(selected[i] === j && selected[i] !== ans) cls = ' gje-wrong';
                    html += '<div class="gje-review-option' + cls + '">' + escapeHtml(op) + '</div>';
                });
                if(q.explanation){ html += '<p><b>Explanation:</b> ' + escapeHtml(q.explanation) + '</p>'; }
                html += '</div>';
            });

            quizBox.innerHTML = '';
            root.querySelector('.gje-buttons').style.display = 'none';
            root.querySelector('.gje-topbar').style.display = 'none';
            root.querySelector('.gje-progress').style.display = 'none';
            resultBox.innerHTML = html;
            resultBox.scrollIntoView({behavior:'smooth'});
        }

        function escapeHtml(text){
            return String(text).replace(/[&<>'"]/g, function(m){
                return {'&':'&amp;','<':'&lt;','>':'&gt;',"'":'&#039;','"':'&quot;'}[m];
            });
        }

        startBtn.addEventListener('click', startTest);
        root.querySelector('.gje-exit-full').addEventListener('click', closeFullScreen);
        root.querySelector('.gje-prev').addEventListener('click', function(){
            if(current > 0){ current--; loadQuestion(); }
        });
        root.querySelector('.gje-next').addEventListener('click', function(){
            if(current < questions.length - 1){ current++; loadQuestion(); }
            else submitTest();
        });
        root.querySelector('.gje-submit').addEventListener('click', submitTest);
    })();
    </script>
    


    <div id="gje_mock_714015_1785444017" class="gje-mock-wrap"
         data-src="https://cdn.jsdelivr.net/gh/GovtJobExams/General-Science@main/LifeScienceMock2.js"
         data-negative="0.25"
         data-per-question="30">

        <div class="gje-start-screen">
            <h2>জীবন বিজ্ঞানের গুরুত্বপূর্ণ প্রশ্ন - মক টেস্ট নং ০2</h2>
            <p class="gje-info-line">প্রতি প্রশ্নের সময়: <b>30 সেকেন্ড</b></p>
            <p class="gje-info-line">Negative Mark: <b>0.25</b></p>
            <p class="gje-total-msg">Total Question: <b>0</b></p>
            <button type="button" class="gje-start-btn" disabled>Start Mock Test</button>
            <p class="gje-load-msg"></p>
        </div>

        <div class="gje-test-screen" style="display:none;">
            <div class="gje-full-head">
                <h2>জীবন বিজ্ঞানের গুরুত্বপূর্ণ প্রশ্ন - মক টেস্ট নং ০2</h2>
                <button type="button" class="gje-exit-full">Exit Full Screen</button>
            </div>

            <div class="gje-topbar">
                <span>⏱ Time: <b class="gje-time">30</b>s</span>
                <span>Question: <b class="gje-qno">1</b>/<b class="gje-total">0</b></span>
                <span>Negative: <b>0.25</b></span>
            </div>

            <div class="gje-progress"><div class="gje-progress-fill"></div></div>
            <div class="gje-quiz-box">Loading questions...</div>

            <div class="gje-buttons">
                <button type="button" class="gje-prev">Previous</button>
                <button type="button" class="gje-next">Next / Skip</button>
                <button type="button" class="gje-submit">Submit Test</button>
            </div>

            <div class="gje-result-box"></div>
        </div>
    </div>

    <script>
    (function(){
        const root = document.getElementById('gje_mock_714015_1785444017');
        if(!root) return;

        let questions = [];
        let current = 0;
        let selected = [];
        let submitted = false;
        let started = false;
        let timerId = null;

        const src = root.dataset.src || '';
        const perQuestion = parseInt(root.dataset.perQuestion || '30');
        const negative = parseFloat(root.dataset.negative || '0.25');
        let qTime = perQuestion;

        const startScreen = root.querySelector('.gje-start-screen');
        const testScreen = root.querySelector('.gje-test-screen');
        const quizBox = root.querySelector('.gje-quiz-box');
        const resultBox = root.querySelector('.gje-result-box');
        const timeBox = root.querySelector('.gje-time');
        const qnoBox = root.querySelector('.gje-qno');
        const totalBox = root.querySelector('.gje-total');
        const progressFill = root.querySelector('.gje-progress-fill');
        const startBtn = root.querySelector('.gje-start-btn');
        const loadMsg = root.querySelector('.gje-load-msg');
        const totalMsg = root.querySelector('.gje-total-msg b');

        if(src){
            fetch(src, {cache: 'no-store'})
            .then(function(r){ return r.text(); })
            .then(function(js){
                const fakeWindow = {};
                const result = new Function(
                    'window',
                    js + '; return window.questions || window.gjeQuestions || (typeof questions !== "undefined" ? questions : []);'
                )(fakeWindow);

                questions = Array.isArray(result) ? result : [];
                totalMsg.textContent = questions.length;

                if(questions.length > 0){
                    startBtn.disabled = false;
                    startBtn.textContent = 'Start Mock Test';
                    loadMsg.style.display = 'none';
                } else {
                    startBtn.disabled = true;
                    loadMsg.innerHTML = '<span style="color:red;">Question পাওয়া যায়নি। JS file-এ questions array আছে কিনা check করুন।</span>';
                }
            })
            .catch(function(){
                startBtn.disabled = true;
                totalMsg.textContent = '0';
                loadMsg.innerHTML = '<span style="color:red;">CDN file load হয়নি। Link check করুন।</span>';
            });
        } else {
            startBtn.disabled = true;
            loadMsg.innerHTML = '<span style="color:red;">Shortcode-এ src URL দিন।</span>';
        }

        function getAnswerIndex(q){
            if(typeof q.answer === 'number') return q.answer;
            if(typeof q.ans === 'number') return q.ans;
            if(typeof q.correct === 'number') return q.correct;
            if(typeof q.answer === 'string' && Array.isArray(q.options)) return q.options.indexOf(q.answer);
            return -1;
        }

        function getQuestionText(q){
            return q.q || q.question || q.title || '';
        }

        function startTest(){
            if(started || questions.length === 0) return;
            started = true;
            selected = Array(questions.length).fill(null);
            totalBox.textContent = questions.length;
            startScreen.style.display = 'none';
            testScreen.style.display = 'block';
            openFullScreen(root);
            loadQuestion();
        }

        function openFullScreen(el){
            if(el.requestFullscreen) el.requestFullscreen().catch(function(){});
            else if(el.webkitRequestFullscreen) el.webkitRequestFullscreen();
            else if(el.msRequestFullscreen) el.msRequestFullscreen();
        }

        function closeFullScreen(){
            if(document.fullscreenElement && document.exitFullscreen) document.exitFullscreen();
            else if(document.webkitFullscreenElement && document.webkitExitFullscreen) document.webkitExitFullscreen();
        }

        function startQuestionTimer(){
            clearInterval(timerId);
            qTime = perQuestion;
            updateTimer();
            timerId = setInterval(function(){
                if(submitted) return clearInterval(timerId);
                qTime--;
                updateTimer();
                if(qTime <= 0){
                    clearInterval(timerId);
                    autoSkipQuestion();
                }
            }, 1000);
        }

        function updateTimer(){
            timeBox.textContent = qTime;
            if(qTime <= 5) timeBox.classList.add('gje-danger-time');
            else timeBox.classList.remove('gje-danger-time');
        }

        function autoSkipQuestion(){
            if(current < questions.length - 1){
                current++;
                loadQuestion();
            } else {
                submitTest();
            }
        }

        function loadQuestion(){
            if(submitted) return;
            const q = questions[current];
            qnoBox.textContent = current + 1;
            progressFill.style.width = (((current + 1) / questions.length) * 100) + '%';

            let html = '<div class="gje-question">Q' + (current + 1) + '. ' + escapeHtml(getQuestionText(q)) + '</div>';
            (q.options || []).forEach(function(op, i){
                html += '<label class="gje-option"><input type="radio" name="gje_option_gje_mock_714015_1785444017" ' + (selected[current] === i ? 'checked' : '') + ' data-index="' + i + '"> ' + escapeHtml(op) + '</label>';
            });

            quizBox.innerHTML = html;
            quizBox.querySelectorAll('input[type="radio"]').forEach(function(input){
                input.addEventListener('change', function(){
                    selected[current] = parseInt(this.dataset.index);
                });
            });
            startQuestionTimer();
        }

        function submitTest(){
            if(submitted) return;
            submitted = true;
            clearInterval(timerId);

            let correct = 0, wrong = 0, notAttempt = 0;
            questions.forEach(function(q, i){
                const ans = getAnswerIndex(q);
                if(selected[i] === null) notAttempt++;
                else if(selected[i] === ans) correct++;
                else wrong++;
            });

            const score = correct - (wrong * negative);
            let html = '<h3>Result</h3>' +
                '<div class="gje-result-grid">' +
                '<div>✅ Correct<br><b>' + correct + '</b></div>' +
                '<div>❌ Wrong<br><b>' + wrong + '</b></div>' +
                '<div>⚪ Not Attempted<br><b>' + notAttempt + '</b></div>' +
                '<div>🏆 Score<br><b>' + score.toFixed(2) + '</b></div>' +
                '</div><h3>Answer Review</h3>';

            questions.forEach(function(q, i){
                const ans = getAnswerIndex(q);
                html += '<div class="gje-review"><b>Q' + (i+1) + '. ' + escapeHtml(getQuestionText(q)) + '</b>';
                (q.options || []).forEach(function(op, j){
                    let cls = '';
                    if(j === ans) cls = ' gje-correct';
                    if(selected[i] === j && selected[i] !== ans) cls = ' gje-wrong';
                    html += '<div class="gje-review-option' + cls + '">' + escapeHtml(op) + '</div>';
                });
                if(q.explanation){ html += '<p><b>Explanation:</b> ' + escapeHtml(q.explanation) + '</p>'; }
                html += '</div>';
            });

            quizBox.innerHTML = '';
            root.querySelector('.gje-buttons').style.display = 'none';
            root.querySelector('.gje-topbar').style.display = 'none';
            root.querySelector('.gje-progress').style.display = 'none';
            resultBox.innerHTML = html;
            resultBox.scrollIntoView({behavior:'smooth'});
        }

        function escapeHtml(text){
            return String(text).replace(/[&<>'"]/g, function(m){
                return {'&':'&amp;','<':'&lt;','>':'&gt;',"'":'&#039;','"':'&quot;'}[m];
            });
        }

        startBtn.addEventListener('click', startTest);
        root.querySelector('.gje-exit-full').addEventListener('click', closeFullScreen);
        root.querySelector('.gje-prev').addEventListener('click', function(){
            if(current > 0){ current--; loadQuestion(); }
        });
        root.querySelector('.gje-next').addEventListener('click', function(){
            if(current < questions.length - 1){ current++; loadQuestion(); }
            else submitTest();
        });
        root.querySelector('.gje-submit').addEventListener('click', submitTest);
    })();
    </script>
    
]]></content:encoded>
					
					<wfw:commentRss>https://govtjobexams.com/free-science-mock-test/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kolkata Police Mains Mock Test &#124; Free Practice Set 2026</title>
		<link>https://govtjobexams.com/kolkata-police-mains-exam-free-mock-test/</link>
					<comments>https://govtjobexams.com/kolkata-police-mains-exam-free-mock-test/#respond</comments>
		
		<dc:creator><![CDATA[Deba]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 18:35:47 +0000</pubDate>
				<category><![CDATA[Free Mock Test]]></category>
		<guid isPermaLink="false">https://govtjobexams.com/?p=236</guid>

					<description><![CDATA[আজকে আমরা একটি ফুল ৮৫ নম্বরের Kolkata Police Mains Mock Test এর আয়োজন করেছি। আমরা এই মকটেস্টে জিকে থেকে ২৫ নম্বর, Reasoning থেকে ২৫ নম্বর, ম্যাথমেটিক্স থেকে ২৫ নম্বর এবং ইংলিশ থেকে ১০ নম্বর। মোট ৮৫ নম্বরের একটি ফুল মকটেস্ট বানিয়েছি।&#160; আমাদের মকটেস্টে আমরা সব চ্যাপ্টার থেকে গুরুত্বপূর্ণ প্রশ্ন সংগ্রহ করে বানিয়েছি , আমাদের মকটেস্ট [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">আজকে আমরা  একটি ফুল ৮৫ নম্বরের Kolkata Police Mains Mock Test  এর আয়োজন করেছি। আমরা এই মকটেস্টে জিকে থেকে ২৫ নম্বর, Reasoning থেকে ২৫ নম্বর, ম্যাথমেটিক্স থেকে ২৫ নম্বর এবং ইংলিশ থেকে ১০ নম্বর। মোট ৮৫ নম্বরের একটি ফুল মকটেস্ট বানিয়েছি।&nbsp;</p>



<p class="wp-block-paragraph">আমাদের মকটেস্টে আমরা সব চ্যাপ্টার থেকে গুরুত্বপূর্ণ প্রশ্ন সংগ্রহ করে বানিয়েছি , আমাদের মকটেস্ট আপনাদের ভালো লাগলে আমাদের হোয়াটস্যাপ চ্যানেল এবং ফেইসবুক পেজে জয়েনও করতে পারেন।&nbsp;</p>



<p class="wp-block-paragraph">সফলতা একদিনে আসে না , প্র্যাক্টিস, ধৈর্য্য ও পরিশ্রম আপনাকে সাফল্যের এক ধাপ এগিয়ে নিয়ে যেতে সাহায্য করবে।&nbsp;</p>



<p class="wp-block-paragraph"> All The Best , Best of Luck </p>



<p class="wp-block-paragraph"><strong>নিচের &#8220;Start Mock Test&#8221; বাটনে ক্লিক করে এখনই পরীক্ষা শুরু করুন। শুভেচ্ছা রইল! </strong></p>


    <div id="gje_mock_207015_1785444017" class="gje-mock-wrap"
         data-src="https://cdn.jsdelivr.net/gh/GovtJobExams/KP-Mock-Test/mains-mock-test-1.js"
         data-negative="0.25"
         data-per-question="30">

        <div class="gje-start-screen">
            <h2>কলকাতা পুলিশ কনস্টেবল মেন্স Mock Test 01</h2>
            <p class="gje-info-line">প্রতি প্রশ্নের সময়: <b>30 সেকেন্ড</b></p>
            <p class="gje-info-line">Negative Mark: <b>0.25</b></p>
            <p class="gje-total-msg">Total Question: <b>0</b></p>
            <button type="button" class="gje-start-btn" disabled>Start Mock Test</button>
            <p class="gje-load-msg"></p>
        </div>

        <div class="gje-test-screen" style="display:none;">
            <div class="gje-full-head">
                <h2>কলকাতা পুলিশ কনস্টেবল মেন্স Mock Test 01</h2>
                <button type="button" class="gje-exit-full">Exit Full Screen</button>
            </div>

            <div class="gje-topbar">
                <span>⏱ Time: <b class="gje-time">30</b>s</span>
                <span>Question: <b class="gje-qno">1</b>/<b class="gje-total">0</b></span>
                <span>Negative: <b>0.25</b></span>
            </div>

            <div class="gje-progress"><div class="gje-progress-fill"></div></div>
            <div class="gje-quiz-box">Loading questions...</div>

            <div class="gje-buttons">
                <button type="button" class="gje-prev">Previous</button>
                <button type="button" class="gje-next">Next / Skip</button>
                <button type="button" class="gje-submit">Submit Test</button>
            </div>

            <div class="gje-result-box"></div>
        </div>
    </div>

    <script>
    (function(){
        const root = document.getElementById('gje_mock_207015_1785444017');
        if(!root) return;

        let questions = [];
        let current = 0;
        let selected = [];
        let submitted = false;
        let started = false;
        let timerId = null;

        const src = root.dataset.src || '';
        const perQuestion = parseInt(root.dataset.perQuestion || '30');
        const negative = parseFloat(root.dataset.negative || '0.25');
        let qTime = perQuestion;

        const startScreen = root.querySelector('.gje-start-screen');
        const testScreen = root.querySelector('.gje-test-screen');
        const quizBox = root.querySelector('.gje-quiz-box');
        const resultBox = root.querySelector('.gje-result-box');
        const timeBox = root.querySelector('.gje-time');
        const qnoBox = root.querySelector('.gje-qno');
        const totalBox = root.querySelector('.gje-total');
        const progressFill = root.querySelector('.gje-progress-fill');
        const startBtn = root.querySelector('.gje-start-btn');
        const loadMsg = root.querySelector('.gje-load-msg');
        const totalMsg = root.querySelector('.gje-total-msg b');

        if(src){
            fetch(src, {cache: 'no-store'})
            .then(function(r){ return r.text(); })
            .then(function(js){
                const fakeWindow = {};
                const result = new Function(
                    'window',
                    js + '; return window.questions || window.gjeQuestions || (typeof questions !== "undefined" ? questions : []);'
                )(fakeWindow);

                questions = Array.isArray(result) ? result : [];
                totalMsg.textContent = questions.length;

                if(questions.length > 0){
                    startBtn.disabled = false;
                    startBtn.textContent = 'Start Mock Test';
                    loadMsg.style.display = 'none';
                } else {
                    startBtn.disabled = true;
                    loadMsg.innerHTML = '<span style="color:red;">Question পাওয়া যায়নি। JS file-এ questions array আছে কিনা check করুন।</span>';
                }
            })
            .catch(function(){
                startBtn.disabled = true;
                totalMsg.textContent = '0';
                loadMsg.innerHTML = '<span style="color:red;">CDN file load হয়নি। Link check করুন।</span>';
            });
        } else {
            startBtn.disabled = true;
            loadMsg.innerHTML = '<span style="color:red;">Shortcode-এ src URL দিন।</span>';
        }

        function getAnswerIndex(q){
            if(typeof q.answer === 'number') return q.answer;
            if(typeof q.ans === 'number') return q.ans;
            if(typeof q.correct === 'number') return q.correct;
            if(typeof q.answer === 'string' && Array.isArray(q.options)) return q.options.indexOf(q.answer);
            return -1;
        }

        function getQuestionText(q){
            return q.q || q.question || q.title || '';
        }

        function startTest(){
            if(started || questions.length === 0) return;
            started = true;
            selected = Array(questions.length).fill(null);
            totalBox.textContent = questions.length;
            startScreen.style.display = 'none';
            testScreen.style.display = 'block';
            openFullScreen(root);
            loadQuestion();
        }

        function openFullScreen(el){
            if(el.requestFullscreen) el.requestFullscreen().catch(function(){});
            else if(el.webkitRequestFullscreen) el.webkitRequestFullscreen();
            else if(el.msRequestFullscreen) el.msRequestFullscreen();
        }

        function closeFullScreen(){
            if(document.fullscreenElement && document.exitFullscreen) document.exitFullscreen();
            else if(document.webkitFullscreenElement && document.webkitExitFullscreen) document.webkitExitFullscreen();
        }

        function startQuestionTimer(){
            clearInterval(timerId);
            qTime = perQuestion;
            updateTimer();
            timerId = setInterval(function(){
                if(submitted) return clearInterval(timerId);
                qTime--;
                updateTimer();
                if(qTime <= 0){
                    clearInterval(timerId);
                    autoSkipQuestion();
                }
            }, 1000);
        }

        function updateTimer(){
            timeBox.textContent = qTime;
            if(qTime <= 5) timeBox.classList.add('gje-danger-time');
            else timeBox.classList.remove('gje-danger-time');
        }

        function autoSkipQuestion(){
            if(current < questions.length - 1){
                current++;
                loadQuestion();
            } else {
                submitTest();
            }
        }

        function loadQuestion(){
            if(submitted) return;
            const q = questions[current];
            qnoBox.textContent = current + 1;
            progressFill.style.width = (((current + 1) / questions.length) * 100) + '%';

            let html = '<div class="gje-question">Q' + (current + 1) + '. ' + escapeHtml(getQuestionText(q)) + '</div>';
            (q.options || []).forEach(function(op, i){
                html += '<label class="gje-option"><input type="radio" name="gje_option_gje_mock_207015_1785444017" ' + (selected[current] === i ? 'checked' : '') + ' data-index="' + i + '"> ' + escapeHtml(op) + '</label>';
            });

            quizBox.innerHTML = html;
            quizBox.querySelectorAll('input[type="radio"]').forEach(function(input){
                input.addEventListener('change', function(){
                    selected[current] = parseInt(this.dataset.index);
                });
            });
            startQuestionTimer();
        }

        function submitTest(){
            if(submitted) return;
            submitted = true;
            clearInterval(timerId);

            let correct = 0, wrong = 0, notAttempt = 0;
            questions.forEach(function(q, i){
                const ans = getAnswerIndex(q);
                if(selected[i] === null) notAttempt++;
                else if(selected[i] === ans) correct++;
                else wrong++;
            });

            const score = correct - (wrong * negative);
            let html = '<h3>Result</h3>' +
                '<div class="gje-result-grid">' +
                '<div>✅ Correct<br><b>' + correct + '</b></div>' +
                '<div>❌ Wrong<br><b>' + wrong + '</b></div>' +
                '<div>⚪ Not Attempted<br><b>' + notAttempt + '</b></div>' +
                '<div>🏆 Score<br><b>' + score.toFixed(2) + '</b></div>' +
                '</div><h3>Answer Review</h3>';

            questions.forEach(function(q, i){
                const ans = getAnswerIndex(q);
                html += '<div class="gje-review"><b>Q' + (i+1) + '. ' + escapeHtml(getQuestionText(q)) + '</b>';
                (q.options || []).forEach(function(op, j){
                    let cls = '';
                    if(j === ans) cls = ' gje-correct';
                    if(selected[i] === j && selected[i] !== ans) cls = ' gje-wrong';
                    html += '<div class="gje-review-option' + cls + '">' + escapeHtml(op) + '</div>';
                });
                if(q.explanation){ html += '<p><b>Explanation:</b> ' + escapeHtml(q.explanation) + '</p>'; }
                html += '</div>';
            });

            quizBox.innerHTML = '';
            root.querySelector('.gje-buttons').style.display = 'none';
            root.querySelector('.gje-topbar').style.display = 'none';
            root.querySelector('.gje-progress').style.display = 'none';
            resultBox.innerHTML = html;
            resultBox.scrollIntoView({behavior:'smooth'});
        }

        function escapeHtml(text){
            return String(text).replace(/[&<>'"]/g, function(m){
                return {'&':'&amp;','<':'&lt;','>':'&gt;',"'":'&#039;','"':'&quot;'}[m];
            });
        }

        startBtn.addEventListener('click', startTest);
        root.querySelector('.gje-exit-full').addEventListener('click', closeFullScreen);
        root.querySelector('.gje-prev').addEventListener('click', function(){
            if(current > 0){ current--; loadQuestion(); }
        });
        root.querySelector('.gje-next').addEventListener('click', function(){
            if(current < questions.length - 1){ current++; loadQuestion(); }
            else submitTest();
        });
        root.querySelector('.gje-submit').addEventListener('click', submitTest);
    })();
    </script>
    



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://govtjobexams.com/kolkata-police-mains-exam-free-mock-test/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
