{"id":1205,"date":"2026-06-03T00:46:56","date_gmt":"2026-06-03T00:46:56","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-2-test-4-rw\/"},"modified":"2026-07-05T02:44:40","modified_gmt":"2026-07-05T02:44:40","slug":"cambridge-ket-2-test-4-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-2-test-4-rw\/","title":{"rendered":"KET 2 \u2014 Test 4 Reading &#038; Writing"},"content":{"rendered":"\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&#038;family=Inter:wght@400;500;600;700&#038;display=swap\" id=\"ae4u-fonts-link\">\n<style id=\"ae4u-fonts\">:root{--ae4u-font-body:\"Inter\",system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif;--ae4u-font-heading:\"Plus Jakarta Sans\",\"Inter\",system-ui,sans-serif;--ae4u-font-mono:\"Inconsolata\",\"Source Code Pro\",Menlo,Consolas,monospace}body,p,li,dd,dt,blockquote,figcaption,table,.entry-content,.wp-block-post-content,input,textarea,select,.input-blank,.q-select,.writing-area{font-family:var(--ae4u-font-body)!important;font-feature-settings:\"cv11\" 1,\"ss01\" 1,\"kern\" 1,\"liga\" 1,\"calt\" 1;letter-spacing:-0.011em}body,.entry-content{font-size:16px;line-height:1.5}.small,small,.caption,figcaption,.muted{font-size:14px;line-height:1.5;color:#5b6577}h1,h2,h3,h4,h5,h6,.serif,.hero h1,.hero h2,.part-head h2,.results-banner h3{font-family:var(--ae4u-font-heading)!important;font-weight:700;letter-spacing:-0.025em;line-height:1.15}h1{font-weight:800;letter-spacing:-0.03em;line-height:1.1}h2{font-weight:700;letter-spacing:-0.025em;line-height:1.15}h3{font-weight:700;letter-spacing:-0.02em;line-height:1.25}h4,h5,h6{font-weight:600;letter-spacing:-0.015em;line-height:1.3}.test-chip .tc-txt b{font-family:var(--ae4u-font-heading)!important;font-weight:700;letter-spacing:-0.015em}button,.btn,.btn-primary,a.button,.wp-block-button__link,#submitBtn,#resetBtn,.sample-toggle{font-family:var(--ae4u-font-body)!important;font-weight:600;letter-spacing:-0.005em}@media(min-width:768px){body,.entry-content{font-size:16px;line-height:1.55}h1{font-size:clamp(36px,5vw,60px)}h2{font-size:clamp(28px,3.5vw,42px)}h3{font-size:clamp(22px,2.5vw,28px)}}@media(max-width:767px){body{font-size:15px;line-height:1.55}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}}code,kbd,pre,samp,.mono{font-family:var(--ae4u-font-mono)!important}.input-blank{font-family:var(--ae4u-font-body)!important;font-weight:600;letter-spacing:-0.005em}.qn{font-family:var(--ae4u-font-heading)!important;font-weight:700}#scoreBar,.score-bar{position:static!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;width:auto!important;max-width:1100px!important;margin:48px auto 24px auto!important;z-index:auto!important;border:1px solid rgba(0,0,0,0.08)!important;border-radius:18px!important;box-shadow:0 6px 24px rgba(15,23,42,0.06)!important;background:#fff!important;padding:16px 24px!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}body{padding-bottom:0!important}.score-bar .wrap,.score-bar .sb-inner{max-width:none;margin:0}.show-ans-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;background:#FEF3C7;color:#7B5B00;font-weight:700;font-size:12px;border:1px solid #E8D88E;cursor:pointer;transition:all .15s ease;margin:8px 0 0 0;font-family:var(--ae4u-font-body)!important;line-height:1.2}.show-ans-btn:hover{background:#FDE68A;transform:translateY(-1px)}.show-ans-btn:disabled{cursor:default;opacity:.6}.show-ans-btn.show-ans-inline{padding:4px 9px;font-size:11px;margin-left:6px;margin-top:0}.show-ans-result{display:inline-block;margin-left:8px;padding:4px 10px;border-radius:8px;background:rgba(16,185,129,.12);color:#065F46;font-weight:700;font-size:12px}.q-item.revealed{background:rgba(254,243,199,.4);border-color:#E8D88E;position:relative}.q-item.revealed::before{content:\"\\1F441 revealed\";position:absolute;top:8px;right:12px;font-size:10px;color:#7B5B00;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.input-blank[data-revealed=\"1\"]{background:rgba(254,243,199,.5)!important;border-color:#E8D88E!important;color:#7B5B00!important;font-weight:700}<\/style>\n<script id=\"ae4u-rw-show-ans\">(function(){var KEYS={\"1\":\"G\",\"2\":\"B\",\"3\":\"D\",\"4\":\"H\",\"5\":\"A\",\"6\":\"A\",\"7\":\"A\",\"8\":\"B\",\"9\":\"C\",\"10\":\"C\",\"11\":\"C\",\"12\":\"A\",\"13\":\"A\",\"14\":\"A\",\"15\":\"B\",\"16\":\"E\",\"17\":\"F\",\"18\":\"B\",\"19\":\"H\",\"20\":\"G\",\"21\":\"B\",\"22\":\"B\",\"23\":\"A\",\"24\":\"C\",\"25\":\"A\",\"26\":\"B\",\"27\":\"A\",\"28\":\"B\",\"29\":\"A\",\"30\":\"B\",\"31\":\"A\",\"32\":\"A\",\"33\":\"A\",\"34\":\"B\",\"35\":\"C\",\"36\":\"shoes\",\"37\":\"suit\",\"38\":\"raincoat\",\"39\":\"shorts\",\"40\":\"sweater\",\"41\":\"told\",\"42\":\"had\",\"43\":\"are\",\"44\":\"a\",\"45\":\"the\",\"46\":\"were\",\"47\":\"me\",\"48\":\"you\",\"49\":\"to\",\"50\":\"on\",\"51\":\"21 may\",\"52\":\"paris\",\"53\":\"18.25\",\"54\":\"one\",\"55\":\"clothes\"};function init(){Object.keys(KEYS).forEach(function(qid){var ans=KEYS[qid];var item=document.querySelector('.q-item[data-qid=\"'+qid+'\"]');if(item){if(item.querySelector('.show-ans-btn'))return;var btn=document.createElement('button');btn.className='show-ans-btn';btn.type='button';btn.dataset.show=qid;btn.innerHTML='\\u{1F441} Show Answer';item.appendChild(btn);btn.addEventListener('click',function(){item.classList.add('revealed');var d=item.querySelector('.show-ans-result');if(!d){d=document.createElement('span');d.className='show-ans-result';btn.insertAdjacentElement('afterend',d);}d.textContent='\\u2192 '+ans;btn.disabled=true;btn.textContent='\\u2714 Revealed';});return;}var sel=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');if(sel&&!sel.parentElement.querySelector('.show-ans-btn[data-show=\"'+qid+'\"]')){var bs=document.createElement('button');bs.className='show-ans-btn show-ans-inline';bs.type='button';bs.dataset.show=qid;bs.textContent='\\u{1F441}';bs.title='Show answer for Q'+qid;sel.insertAdjacentElement('afterend',bs);bs.addEventListener('click',function(){sel.value=ans;sel.dataset.revealed='1';sel.style.background='rgba(254,243,199,.5)';sel.style.borderColor='#E8D88E';sel.style.color='#7B5B00';sel.style.fontWeight='700';bs.disabled=true;bs.textContent='\\u2714 '+ans;});return;}var blank=document.querySelector('.input-blank[data-q=\"'+qid+'\"]');if(blank&&!blank.parentElement.querySelector('.show-ans-btn[data-show=\"'+qid+'\"]')){var b=document.createElement('button');b.className='show-ans-btn show-ans-inline';b.type='button';b.dataset.show=qid;b.textContent='\\u{1F441}';b.title='Show answer for Q'+qid;blank.insertAdjacentElement('afterend',b);b.addEventListener('click',function(){blank.value=ans;blank.dataset.revealed='1';b.disabled=true;b.textContent='\\u2714 '+ans;});}});}function tryInit(){init();}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',tryInit);}else{tryInit();}setTimeout(tryInit,500);setTimeout(tryInit,1500);})();<\/script>\n\n<script id=\"ae4u-scorebar-move\">(function(){function move(){var sb=document.getElementById(\"scoreBar\");if(!sb||sb.dataset.aeMoved)return;var rb=document.getElementById(\"resultsBanner\");var p9=document.getElementById(\"part9\");var anchor=rb||p9;if(anchor&&anchor.parentNode){var target=rb?rb:p9.nextElementSibling;if(rb){rb.parentNode.insertBefore(sb,rb);}else{p9.parentNode.insertBefore(sb,p9.nextSibling);}sb.dataset.aeMoved=\"1\";}}if(document.readyState!==\"loading\"){move();}else{document.addEventListener(\"DOMContentLoaded\",move);}})();<\/script>\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,700&display=swap');\n\n\/* escape WP wrapper *\/\n.entry-content,.wp-block-post-content,.is-layout-constrained{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}\n.wp-block-post-title{display:none !important;}\n\n:root{\n  --accent-1:#F97316;\n  --accent-2:#F43F5E;\n  --gold:#F9C74F;\n  --green:#10B981;\n  --red:#EF4444;\n  --light-1:#FFF7ED;\n  --light-2:#FFFBF5;\n  --white:#FFFFFF;\n  --text:#0F172A;\n  --muted:#475569;\n  --subtle:#64748B;\n  --border:#E2E8F0;\n  --dark-1:#1B0F02;\n  --dark-2:#2D1A06;\n  --r-10:10px; --r-16:16px; --r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n  --sh-lg:0 12px 40px rgba(0,0,0,.12);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif;\n  color:var(--text);\n  background:var(--light-2);\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}\n.serif{font-family:'Fraunces',Georgia,serif;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:1080px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit;cursor:pointer;border:none;background:none}\n\n\/* HEADER (same pattern as cambridge index) *\/\n.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .28s ease,box-shadow .28s ease;border-bottom:1px solid transparent;}\n.header.solid{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(15,23,42,.02);}\n.header-inner{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px;margin:0 auto;padding:0 24px}\n.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}\n.brand img{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:var(--sh-card)}\n.brand-name{font-weight:800;font-size:18px;letter-spacing:-.02em;color:#fff;transition:color .28s ease}\n.header.solid .brand-name{color:var(--text)}\n.nav{display:flex;align-items:center;gap:4px;margin-left:8px}\n.nav a{position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.82);border-radius:var(--r-10);transition:color .16s ease,background .16s ease;}\n.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}\n.header.solid .nav a{color:var(--muted)}\n.header.solid .nav a:hover{color:var(--text);background:var(--light-1)}\n.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}\n.btn-back{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);transition:background .16s ease}\n.btn-back:hover{background:rgba(255,255,255,.22)}\n.header.solid .btn-back{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.hamburger{display:none;width:40px;height:40px;border-radius:50%;color:#fff;align-items:center;justify-content:center}\n.header.solid .hamburger{color:var(--text)}\n\n\/* HERO *\/\n.hero{\n  position:relative;min-height:380px;padding:120px 0 60px;\n  background:linear-gradient(135deg,#FB923C 0%,#F43F5E 55%,#7C2D12 100%);\n  color:#fff;overflow:hidden;\n}\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.10) 0%,transparent 50%);pointer-events:none}\n.hero .wrap{position:relative;z-index:1}\n.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.92;margin-bottom:14px}\n.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin-bottom:14px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:17px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:22px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}\n.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.24);font-size:13px;font-weight:600}\n.meta-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}\n.cta-row{display:flex;gap:12px;flex-wrap:wrap}\n.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .16s ease}\n.btn-primary:hover{transform:translateY(-2px)}\n.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:15px;border:1px solid rgba(255,255,255,.32);transition:background .16s ease}\n.btn-ghost:hover{background:rgba(255,255,255,.22)}\n\n\/* SCORE BAR *\/\n.score-bar{\n  position:sticky;top:72px;z-index:50;\n  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);\n  border-bottom:1px solid var(--border);\n  padding:14px 0;\n}\n.sb-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.sb-prog{flex:1;min-width:200px}\n.sb-prog-bar{height:8px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.sb-prog-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}\n.sb-score{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text)}\n.sb-score b{font-size:18px;color:var(--accent-1)}\n.btn-submit{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(249,115,22,.32);transition:transform .15s ease,opacity .15s ease}\n.btn-submit:hover{transform:translateY(-1px)}\n.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}\n.btn-reset{padding:10px 16px;border-radius:999px;background:#fff;color:var(--muted);font-weight:600;font-size:13px;border:1px solid var(--border);transition:background .15s ease}\n.btn-reset:hover{background:var(--light-1);color:var(--text)}\n\n\/* PARTS *\/\n.part-section{padding:48px 0;border-bottom:1px solid var(--border)}\n.part-section:nth-of-type(even){background:#fff}\n.part-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}\n.part-num{\n  flex-shrink:0;width:60px;height:60px;border-radius:18px;\n  background:linear-gradient(135deg,var(--accent-1),var(--accent-2));\n  color:#fff;display:grid;place-items:center;\n  font-family:'Fraunces',serif;font-weight:700;font-size:26px;\n  box-shadow:0 8px 22px rgba(249,115,22,.3);\n}\n.part-head-text h2{font-size:26px;line-height:1.15;margin-bottom:6px}\n.part-head-text .qrange{display:inline-block;font-size:12.5px;font-weight:700;color:var(--accent-1);background:var(--light-1);padding:4px 10px;border-radius:999px;letter-spacing:.04em;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:15px;line-height:1.55;max-width:740px}\n\n\/* PART 1 &#8212; notice match *\/\n.notices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:20px 0 28px}\n.notice{\n  background:#fff;border:2px solid var(--border);border-radius:14px;padding:18px 14px;text-align:center;\n  font-weight:700;letter-spacing:.02em;color:var(--text);min-height:88px;display:grid;place-items:center;\n  font-size:14.5px;line-height:1.35;\n  box-shadow:0 1px 3px rgba(0,0,0,.04);\n}\n.notice-letter{position:absolute;top:6px;left:8px;font-size:11px;font-weight:800;color:var(--accent-1);background:var(--light-1);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;}\n.notice{position:relative}\n\n\/* questions list *\/\n.q-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}\n.q-item{\n  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;\n  display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;\n}\n.q-item.correct{border-color:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.12)}\n.q-item.wrong{border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.12)}\n.q-num{font-weight:800;color:var(--accent-1);font-size:14px;min-width:30px}\n.q-text{flex:1;font-size:15.5px;line-height:1.55;color:var(--text);display:flex;gap:10px;align-items:flex-start}\n.q-text b.qn{color:var(--accent-1);font-weight:800}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}\n.opt{\n  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;\n  background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);\n  cursor:pointer;transition:all .15s ease;user-select:none;\n}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{font-weight:800;color:var(--accent-1);background:#fff;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12.5px;border:1px solid var(--border)}\n.opt.selected{background:linear-gradient(100deg,rgba(249,115,22,.12),rgba(244,63,94,.12));border-color:var(--accent-1)}\n.opt.selected .opt-letter{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.opt.correct-opt{background:rgba(16,185,129,.12) !important;border-color:var(--green) !important}\n.opt.correct-opt .opt-letter{background:var(--green) !important;color:#fff !important;border-color:transparent !important}\n.opt.wrong-opt{background:rgba(239,68,68,.10) !important;border-color:var(--red) !important}\n.opt.wrong-opt .opt-letter{background:var(--red) !important;color:#fff !important;border-color:transparent !important}\n.feedback{font-size:13px;font-weight:600;display:none;padding:8px 12px;border-radius:8px;margin-top:4px}\n.q-item.answered .feedback{display:block}\n.q-item.correct .feedback{background:rgba(16,185,129,.12);color:#065F46}\n.q-item.wrong .feedback{background:rgba(239,68,68,.10);color:#991B1B}\n\n\/* PART 2 \/ cloze with input *\/\n.input-blank{\n  display:inline-block;min-width:90px;border:none;border-bottom:2px dashed var(--accent-1);\n  background:transparent;font-family:inherit;font-size:15.5px;color:var(--text);font-weight:600;\n  padding:2px 6px;margin:0 4px;text-align:center;outline:none;\n}\n.input-blank:focus{border-bottom-style:solid;background:var(--light-1)}\n.input-blank.correct{border-bottom-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.input-blank.wrong{border-bottom-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n\n\/* PART 4 &#8212; passage *\/\n.passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;\n  padding:24px 26px;margin:8px 0 20px;\n  font-size:15.5px;line-height:1.7;color:var(--text);\n  box-shadow:var(--sh-card);\n  position:relative;\n}\n.passage h3{font-family:'Fraunces',serif;font-size:22px;text-align:center;margin-bottom:14px;letter-spacing:.02em;color:var(--accent-2)}\n.passage p{margin-bottom:10px}\n\n\/* PART 5 &#8212; cloze passage *\/\n.cloze-passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px 26px;\n  font-size:16px;line-height:1.8;color:var(--text);box-shadow:var(--sh-card);margin-bottom:24px;\n}\n.cloze-passage h3{font-family:'Fraunces',serif;font-size:24px;text-align:center;color:var(--accent-2);margin-bottom:14px}\n\n\/* PART 6 &#8212; single word with first letter *\/\n.word-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}\n.first-letter{font-weight:700;color:var(--accent-1);font-size:18px;font-family:'Fraunces',serif}\n.dashes{color:var(--muted);letter-spacing:6px;font-weight:600}\n\n\/* PART 8 &#8212; form *\/\n.form-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px;max-width:560px}\n.form-card h4{font-family:'Fraunces',serif;font-size:20px;text-align:center;color:var(--accent-2);margin-bottom:6px;border-bottom:2px solid var(--accent-1);padding-bottom:8px;display:inline-block;width:100%}\n.form-row{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}\n.form-row label{flex:0 0 200px;font-weight:600;color:var(--text);font-size:14.5px}\n.form-row .input-blank{flex:1;min-width:200px;text-align:left;font-size:14.5px}\n\n\/* PART 9 &#8212; writing *\/\n.writing-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px}\n.prompt-box{background:var(--light-1);border-left:4px solid var(--accent-1);padding:14px 18px;border-radius:0 12px 12px 0;margin-bottom:18px;font-size:15px;line-height:1.6}\n.prompt-box ul{margin:10px 0 4px 22px}\n.prompt-box li{margin-bottom:4px}\n.writing-area{width:100%;min-height:160px;padding:14px;font-family:inherit;font-size:15px;line-height:1.55;border:2px solid var(--border);border-radius:12px;background:#FAFBFC;color:var(--text);outline:none;resize:vertical;transition:border-color .2s ease}\n.writing-area:focus{border-color:var(--accent-1);background:#fff}\n.wc-counter{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted);font-weight:600}\n.wc-counter.ok{color:var(--green)}\n.wc-counter.over{color:var(--red)}\n.sample-toggle{margin-top:14px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:13.5px;border:none;cursor:pointer}\n.sample-box{display:none;margin-top:14px;padding:14px 18px;background:#FEF3C7;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;font-size:14.5px;line-height:1.6}\n.sample-box.show{display:block}\n.sample-box h5{font-family:'Fraunces',serif;font-size:16px;margin-bottom:8px;color:#92400E}\n\n\/* RESULTS BANNER *\/\n.results-banner{\n  display:none;margin:32px auto;padding:30px;border-radius:22px;\n  background:linear-gradient(135deg,#FB923C,#F43F5E);color:#fff;text-align:center;max-width:720px;\n  box-shadow:0 16px 50px rgba(249,115,22,.3);\n}\n.results-banner.show{display:block}\n.results-banner h3{font-size:30px;font-family:'Fraunces',serif;margin-bottom:10px}\n.results-banner .score-big{font-size:64px;font-weight:800;line-height:1;margin:14px 0;font-family:'Fraunces',serif}\n.results-banner p{opacity:.95;font-size:15px}\n\n\/* FOOTER *\/\n.footer{background:var(--dark-1);color:#9CA3AF;padding:36px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold);font-weight:600}\n\n\/* MOBILE *\/\n@media (max-width:820px){\n  .nav{display:none}\n  .hamburger{display:flex}\n  .hero{padding:110px 0 50px}\n  .part-head{flex-direction:column;gap:12px}\n  .part-num{width:50px;height:50px;font-size:22px}\n  .notices-grid{grid-template-columns:repeat(2,1fr)}\n  .form-row label{flex:1 1 100%}\n  .form-row .input-blank{width:100%}\n  .sb-inner{gap:10px}\n  .sb-prog{order:3;flex:1 1 100%}\n}\n\n\/* mobile drawer *\/\n.drawer{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:200;display:none;align-items:flex-start;justify-content:flex-end}\n.drawer.open{display:flex}\n.drawer-panel{width:280px;background:#fff;height:100%;padding:24px;display:flex;flex-direction:column;gap:8px}\n.drawer-panel a{padding:12px 14px;border-radius:10px;font-weight:600;color:var(--text)}\n.drawer-panel a:hover{background:var(--light-1)}\n.drawer-close{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}\n<\/style>\n\n<!-- HEADER -->\n<header class=\"header\" id=\"hdr\">\n  <div class=\"header-inner\">\n    <a href=\"https:\/\/allenglish4u.com\" class=\"brand\">\n      <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/04\/Transparent-background-MacBook-Pro-cua-Hang.png\" alt=\"AE4U\">\n      <span class=\"brand-name\">All English 4U<\/span>\n    <\/a>\n    <nav class=\"nav\">\n      <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"active\">Cambridge<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n      <\/nav>\n    <div class=\"header-right\">\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-back\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M19 12H5M11 18l-6-6 6-6\"\/><\/svg>\n        Back\n      <\/a>\n      <button class=\"hamburger\" id=\"hamb\" aria-label=\"Menu\">\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M3 6h18M3 12h18M3 18h18\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"drawer\" id=\"drawer\">\n  <div class=\"drawer-panel\">\n    <button class=\"drawer-close\" id=\"drawerClose\" aria-label=\"Close\">\n      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg>\n    <\/button>\n    <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">Cambridge<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n    <\/div>\n<\/div>\n\n<!-- HERO -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge English &#183; Key (KET)<\/span>\n    <h1 class=\"serif\">KET 2 &#8212; Test 4<br><span>Reading &amp; Writing<\/span><\/h1>\n    <p class=\"sub\">Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn from instant feedback.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>1 hour 10 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>9 Parts<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>55 auto-graded<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>+ Writing prompt<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a href=\"#part1\" class=\"btn-primary\">\n        Start Test\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n      <\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-ghost\">All Cambridge Tests<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- SCORE BAR -->\n<div class=\"score-bar\" id=\"scoreBar\">\n  <div class=\"wrap sb-inner\">\n    <div class=\"sb-score\">Score <b><span id=\"scoreNow\">0<\/span>\/55<\/b><\/div>\n    <div class=\"sb-prog\">\n      <div class=\"sb-prog-bar\"><div class=\"sb-prog-fill\" id=\"progFill\"><\/div><\/div>\n      <div class=\"sb-prog-label\"><span id=\"answeredCount\">0<\/span> of 55 answered<\/div>\n    <\/div>\n    <button class=\"btn-submit\" id=\"submitBtn\">\n      <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n      Submit &amp; Grade\n    <\/button>\n    <button class=\"btn-reset\" id=\"resetBtn\">Reset<\/button>\n  <\/div>\n<\/div>\n\n<!-- ============== PART 1 ============== -->\n<section class=\"part-section\" id=\"part1\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">1<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 1&#8211;5<\/span>\n        <h2 class=\"serif\">Match the notice<\/h2>\n        <p>Which notice (A&#8211;H) says this (1&#8211;5)? For questions 1&#8211;5, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> You can sleep here. &#8594; <b>F<\/b>\n    <\/div>\n    <div class=\"notices-grid\">\n      <div class=\"notice\"><span class=\"notice-letter\">A<\/span>Bridge closed<br>to traffic<br>because of<br>high wind.<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">B<\/span>DELAYS<br>POSSIBLE<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">C<\/span>OLYMPIC SPORTS<br>CENTRE<br>&#8211; use your<br>student card here.<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">D<\/span>DO NOT PARK<br>IN FRONT OF<br>THE GARAGE<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">E<\/span>CAR PARK<br>&#163;2.00 for<br>2 hours<\/div>\n      <div class=\"notice\" style=\"opacity:.55\"><span class=\"notice-letter\">F<\/span>GUEST HOUSE<br><i style=\"font-size:11px;color:var(--muted)\">(example)<\/i><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">G<\/span>NO BALL GAMES<br>ON GRASS<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">H<\/span>COMPUTER COURSE<br>STARTS ON<br>MONDAY.<\/div>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part1List\">\n      <!-- Q1-5 -->\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 2 ============== -->\n<section class=\"part-section\" id=\"part2\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">2<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 6&#8211;10<\/span>\n        <h2 class=\"serif\">Claudia cooking for her parents<\/h2>\n        <p>Read the sentences (6&#8211;10) about cooking. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> Claudia was going to cook a <u>meal<\/u> for her parents. <b>(Answer: B)<\/b>\n    <\/div>\n    <div class=\"q-list\" id=\"part2List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3a ============== -->\n<section class=\"part-section\" id=\"part3a\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 11&#8211;15<\/span>\n        <h2 class=\"serif\">Complete the conversations<\/h2>\n        <p>Complete the five conversations. Choose the correct answer (A, B or C).<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> Where do you come from? &#8212; <b>A<\/b> New York.\n    <\/div>\n    <div class=\"q-list\" id=\"part3aList\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3b ============== -->\n<section class=\"part-section\" id=\"part3b\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 16&#8211;20<\/span>\n        <h2 class=\"serif\">Howard at the hotel reception<\/h2>\n        <p>Complete the conversation. What does Howard say to the hotel receptionist? For each blank, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;margin-bottom:18px;font-size:14.5px;line-height:1.7\">\n      <p><b>Receptionist:<\/b> Good morning. Can I help you?<\/p>\n      <p><b>Howard:<\/b> <span style=\"color:var(--accent-1);font-weight:700\">(Example: D)<\/span><\/p>\n      <p><b>Receptionist:<\/b> Will that be a single room?<\/p>\n      <p><b>Howard:<\/b> <select class=\"q-select\" data-qid=\"16\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Receptionist:<\/b> How long do you want to stay, sir?<\/p>\n      <p><b>Howard:<\/b> <select class=\"q-select\" data-qid=\"17\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Receptionist:<\/b> For one night, that will be &#163;54 per person.<\/p>\n      <p><b>Howard:<\/b> <select class=\"q-select\" data-qid=\"18\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Receptionist:<\/b> Yes, it is. How would you like to pay, sir?<\/p>\n      <p><b>Howard:<\/b> <select class=\"q-select\" data-qid=\"19\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Receptionist:<\/b> That&#8217;ll be fine. Your room number is 401. Do you need any help with your luggage?<\/p>\n      <p><b>Howard:<\/b> <select class=\"q-select\" data-qid=\"20\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Receptionist:<\/b> Here is your key, sir. I hope you enjoy your stay with us.<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.85\">\n      <b style=\"color:var(--accent-1);display:block;margin-bottom:6px\">Choices:<\/b>\n      <div><b>A<\/b> I want to pay tomorrow morning.<\/div>\n      <div><b>B<\/b> Is that with breakfast?<\/div>\n      <div><b>C<\/b> That&#8217;s all right.<\/div>\n      <div style=\"opacity:.5\"><b>D<\/b> I&#8217;d like a room, please. <i>(example)<\/i><\/div>\n      <div><b>E<\/b> No, I&#8217;d like a double, please.<\/div>\n      <div><b>F<\/b> Just tonight, I think. How much will that be, please?<\/div>\n      <div><b>G<\/b> No, thank you. I only have one small suitcase.<\/div>\n      <div><b>H<\/b> By cheque if that&#8217;s possible.<\/div>\n    <\/div>\n\n    <div id=\"part3bFeedback\" style=\"margin-top:14px\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 4 ============== -->\n<section class=\"part-section\" id=\"part4\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">4<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 21&#8211;27<\/span>\n        <h2 class=\"serif\">Reading: Working for an airline<\/h2>\n        <p>Read the article about a British Airways manager, then answer the questions. For each question, choose the correct option <b>A<\/b>, <b>B<\/b> or <b>C<\/b>.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"passage\">\n      <h3>WORKING FOR AN AIRLINE<\/h3>\n      <p>Nicola Peet left school at eighteen, went to college and then worked at a local airport. After nine months, she went to work for Saudi Arabian Airlines and then joined British Airways as an air hostess. Four years later, she got her present job as a manager.<\/p>\n      <p>This is what she told us about her job: &#8216;My office is at Heathrow Airport, but I spend 60% of my time in the air. I teach air hostesses and help them with any problems. I also go to lots of meetings.<\/p>\n      <p>My hours are usually from 8 a.m. to 4 p.m. but sometimes I work from 1 p.m. to 9 p.m. At work, the first thing I do is check plane times on my computer and then I speak with some of the air hostesses.<\/p>\n      <p>Sometimes I go on long flights to check how the air hostesses are doing. That&#8217;s my favourite part of the job, but I like office work, too. Travelling can be hard work. When I get back from a long journey, all I can do is eat something and then go to bed! I don&#8217;t earn much money, but I&#8217;m happy with British Airways and want to stay there and continue to travel.&#8217;<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 18px;margin-bottom:18px;font-size:14px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> Nicola&#8217;s first job was &#8594; <b>C (at a local airport.)<\/b>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part4List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 5 ============== -->\n<section class=\"part-section\" id=\"part5\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">5<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 28&#8211;35<\/span>\n        <h2 class=\"serif\">The Ruwenzori Mountains<\/h2>\n        <p>Read the article about a working holiday. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"cloze-passage\">\n      <h3>THE RUWENZORI MOUNTAINS<\/h3>\n      <p>Mary Daniels is a student in England. She <u><b style=\"color:var(--accent-1)\">had<\/b><\/u> a very interesting summer holiday. She travelled <span data-q=\"28\" class=\"cloze-blank\">[28]<\/span> fifteen other people to the Ruwenzori Mountains in Africa. They went there to help make a road <span data-q=\"29\" class=\"cloze-blank\">[29]<\/span> a forest between two big towns.<\/p>\n      <p>&#8216;It was very difficult <span data-q=\"30\" class=\"cloze-blank\">[30]<\/span> we had to walk a long way for water and there were no shops where we <span data-q=\"31\" class=\"cloze-blank\">[31]<\/span> buy food,&#8217; said Mary. &#8216;It was also very cold and wet in the mountains. It is <span data-q=\"32\" class=\"cloze-blank\">[32]<\/span> of the wettest places in the world.&#8217;<\/p>\n      <p>Mary stayed in the mountains <span data-q=\"33\" class=\"cloze-blank\">[33]<\/span> six weeks. It was hard work, but she says it was the <span data-q=\"34\" class=\"cloze-blank\">[34]<\/span> thing she has ever <span data-q=\"35\" class=\"cloze-blank\">[35]<\/span>. She is hoping to return next year to do some more work there.<\/p>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part5List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 6 ============== -->\n<section class=\"part-section\" id=\"part6\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">6<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 36&#8211;40<\/span>\n        <h2 class=\"serif\">Clothes &#8212; spell the word<\/h2>\n        <p>Read the descriptions of some clothes. The first letter is given. Type the word. <b>Example (0):<\/b> You put this on your head. &#8594; <b>hat<\/b><\/p>\n      <\/div>\n    <\/div>\n    <div class=\"q-list\" id=\"part6List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 7 ============== -->\n<section class=\"part-section\" id=\"part7\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">7<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 41&#8211;50<\/span>\n        <h2 class=\"serif\">Complete the letter &#8212; birthday party<\/h2>\n        <p>Type <b>ONE word<\/b> for each space. (Example: <i>could<\/i>)<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;font-size:15px;line-height:1.8;font-family:'Courier New',monospace\">\n      <p>Dear Mike,<\/p>\n      <p>I am sorry you (Example: <u>could<\/u>) not come to my party yesterday. Jon <input class=\"input-blank\" data-q=\"41\" type=\"text\"> me you had a very bad cold and you <input class=\"input-blank\" data-q=\"42\" type=\"text\"> to stay in bed. <input class=\"input-blank\" data-q=\"43\" type=\"text\"> you feeling better now?<\/p>\n      <p>It was <input class=\"input-blank\" data-q=\"44\" type=\"text\"> very good party; <input class=\"input-blank\" data-q=\"45\" type=\"text\"> nicest I have ever had! Lots of my friends <input class=\"input-blank\" data-q=\"46\" type=\"text\"> there and they gave <input class=\"input-blank\" data-q=\"47\" type=\"text\"> some lovely presents. I will tell <input class=\"input-blank\" data-q=\"48\" type=\"text\"> more about the party when you come <input class=\"input-blank\" data-q=\"49\" type=\"text\"> school <input class=\"input-blank\" data-q=\"50\" type=\"text\"> Monday.<\/p>\n      <p>Love,<\/p>\n      <p><i>Lorenzo<\/i><\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 8 ============== -->\n<section class=\"part-section\" id=\"part8\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">8<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 51&#8211;55<\/span>\n        <h2 class=\"serif\">Luggage Report Form<\/h2>\n        <p>Read the travel information and the letter. Fill in the information on the Luggage Report Form.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:18px;font-size:14px;line-height:1.65\">\n        <p style=\"font-weight:700;color:var(--accent-2);text-align:center;margin-bottom:8px\">Travel Information for Kevin Brown<\/p>\n        <table style=\"width:100%;border-collapse:collapse;font-size:13px;margin-bottom:8px\">\n          <tr style=\"background:var(--light-1)\"><th style=\"padding:6px;border:1px solid var(--border)\">Date<\/th><th style=\"padding:6px;border:1px solid var(--border)\">Leave<\/th><th style=\"padding:6px;border:1px solid var(--border)\">Arrive<\/th><\/tr>\n          <tr><td style=\"padding:6px;border:1px solid var(--border)\">14 May<\/td><td style=\"padding:6px;border:1px solid var(--border)\">Boston 21.45<\/td><td style=\"padding:6px;border:1px solid var(--border)\">Paris 12.05<\/td><\/tr>\n          <tr><td style=\"padding:6px;border:1px solid var(--border)\">21 May<\/td><td style=\"padding:6px;border:1px solid var(--border)\">Paris 14.15<\/td><td style=\"padding:6px;border:1px solid var(--border)\">Boston 18.25<\/td><\/tr>\n        <\/table>\n        <p style=\"font-weight:600\">Luggage: not more than 20 kilos<\/p>\n        <p style=\"font-weight:600;color:var(--accent-1)\">Enjoy your trip! Air America<\/p>\n      <\/div>\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:18px;font-size:14px;line-height:1.65\">\n        <p style=\"text-align:right;color:var(--muted);margin-bottom:6px\">22 May<\/p>\n        <p style=\"font-weight:600\">Air America<br>Boston Airport<\/p>\n        <p>Dear Sir,<\/p>\n        <p>Yesterday I returned from Paris. When I got my suitcase back at the airport it was broken and there was oil on my clothes. I should like some money for a new suitcase and some new clothes.<\/p>\n        <p style=\"margin-top:8px\"><i>Kevin Brown<\/i><\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>Air America &#8212; Luggage Report Form<\/h4>\n      <div class=\"form-row\"><label>Passenger&#8217;s name:<\/label><span style=\"font-weight:600;color:var(--accent-2);font-style:italic\">Kevin Brown<\/span><\/div>\n      <div class=\"form-row\"><label>Date of journey:<\/label><input class=\"input-blank\" data-q=\"51\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Flying from:<\/label><input class=\"input-blank\" data-q=\"52\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Time flight arrived:<\/label><input class=\"input-blank\" data-q=\"53\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>How much luggage did you have?<\/label><input class=\"input-blank\" data-q=\"54\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>What was in it?<\/label><input class=\"input-blank\" data-q=\"55\" type=\"text\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 9 &#8212; WRITING ============== -->\n<section class=\"part-section\" id=\"part9\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">9<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Question 56<\/span>\n        <h2 class=\"serif\">Writing &#8212; ask for cassette recorder<\/h2>\n        <p>This part is <b>not auto-graded<\/b>. Write your note, then click <i>Show Sample Answer<\/i> to compare.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"writing-card\">\n      <div class=\"prompt-box\">\n        <b>Your friend, Chris, has got your cassette recorder. Now you need it. Write a note to Chris:<\/b>\n        <ul>\n          <li><b>Ask<\/b> for the cassette recorder.<\/li>\n          <li><b>Say why<\/b> and <b>when<\/b> you need it.<\/li>\n        <\/ul>\n        Write 25&#8211;35 words.\n      <\/div>\n      <textarea class=\"writing-area\" id=\"writingArea\" placeholder=\"Type your note to Chris here...\"><\/textarea>\n      <div class=\"wc-counter\" id=\"wcCounter\">0 words &#183; target 25&#8211;35<\/div>\n      <button class=\"sample-toggle\" id=\"sampleToggle\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n        Show Sample Answer\n      <\/button>\n      <div class=\"sample-box\" id=\"sampleBox\">\n        <h5>Sample answer (32 words)<\/h5>\n        <p>Hi Chris,<\/p>\n        <p>Please can I have my cassette recorder back? I want to record some songs from the radio for my brother&#8217;s birthday party next Saturday. Could you bring it to school on Friday?<\/p>\n        <p>Thanks, Sam<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- RESULTS BANNER -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>Your KET 2 Test 4 &#8212; Reading &amp; Writing score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/55<\/div>\n    <p id=\"resultsMsg\">Great effort! Scroll up to review your answers &#8212; correct ones are highlighted in green and wrong ones in red.<\/p>\n    <div style=\"margin-top:18px\"><button class=\"btn-primary\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" style=\"background:#fff;color:var(--accent-2)\">Back to top<\/button><\/div>\n  <\/div>\n<\/div>\n\n<!-- FOOTER -->\n<footer class=\"footer\">\n  <div class=\"wrap\">\n    <p>&#169; 2026 All English 4U &#183; <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">All Cambridge Tests<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/contact\/\">Contact<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>\n(function(){\n\/\/ ===== Header scroll =====\nvar hdr=document.getElementById('hdr');\nvar setSolid=function(){if(window.scrollY>40)hdr.classList.add('solid');else hdr.classList.remove('solid')};\nwindow.addEventListener('scroll',setSolid,{passive:true});setSolid();\n\n\/\/ drawer\nvar hamb=document.getElementById('hamb'),drawer=document.getElementById('drawer'),dClose=document.getElementById('drawerClose');\nif(hamb)hamb.addEventListener('click',function(){drawer.classList.add('open')});\nif(dClose)dClose.addEventListener('click',function(){drawer.classList.remove('open')});\nif(drawer)drawer.addEventListener('click',function(e){if(e.target===drawer)drawer.classList.remove('open')});\n\n\/\/ ===== DATA =====\n\/\/ MCQ questions: each entry = {n, text, opts:[{l,t}], ans}\nvar P1 = [\n  {n:1,text:'You must not play football here.',opts:'ABCDEFGH',ans:'G'},\n  {n:2,text:'You may be late.',opts:'ABCDEFGH',ans:'B'},\n  {n:3,text:'You should not leave your car here.',opts:'ABCDEFGH',ans:'D'},\n  {n:4,text:'You can study here soon.',opts:'ABCDEFGH',ans:'H'},\n  {n:5,text:'You cannot drive here today.',opts:'ABCDEFGH',ans:'A'},\n];\nvar P2 = [\n  {n:6,text:'She _____ some fruit and vegetables from the market.',opts:[['A','bought'],['B','kept'],['C','grew']],ans:'A'},\n  {n:7,text:'She cut up some meat and onions and fried them in a pan on the _____ .',opts:[['A','cooker'],['B','cupboard'],['C','fridge']],ans:'A'},\n  {n:8,text:'There was a big _____ of salad to eat afterwards.',opts:[['A','bottle'],['B','bowl'],['C','spoon']],ans:'B'},\n  {n:9,text:'When everything was _____ , they all sat down at the table.',opts:[['A','real'],['B','round'],['C','ready']],ans:'C'},\n  {n:10,text:\"After dinner, Claudia's parents _____ her to wash up.\",opts:[['A','practised'],['B','agreed'],['C','helped']],ans:'C'},\n];\nvar P3a = [\n  {n:11,text:'How far is it to Manchester?',opts:[['A','About two months.'],['B',\"It's quite long.\"],['C','Almost 30 kilometres.']],ans:'C'},\n  {n:12,text:'Could you give me the butter?',opts:[['A','Here you are.'],['B','Thank you.'],['C',\"I don't know.\"]],ans:'A'},\n  {n:13,text:'John hates shopping.',opts:[['A','I love it.'],['B',\"It's six pounds.\"],['C',\"The shop's open.\"]],ans:'A'},\n  {n:14,text:\"I've already done my homework.\",opts:[['A','When did you do it?'],['B','Please do it.'],['C','Have you done it yet?']],ans:'A'},\n  {n:15,text:\"What's the date today?\",opts:[['A',\"It's Thursday.\"],['B','The third, I think.'],['C',\"I'm 22 today.\"]],ans:'B'},\n];\nvar P3bAns = {16:'E',17:'F',18:'B',19:'H',20:'G'};\nvar P4 = [\n  {n:21,text:'When Nicola first started working for British Airways, she was',opts:[['A','a manager.'],['B','an air hostess.'],['C','a pilot.']],ans:'B'},\n  {n:22,text:'Nicola does most of her work',opts:[['A','in the office.'],['B','in aeroplanes.'],['C','in meetings.']],ans:'B'},\n  {n:23,text:'Most days, Nicola starts work at',opts:[['A','8 a.m.'],['B','1 p.m.'],['C','4 p.m.']],ans:'A'},\n  {n:24,text:'At the beginning of each day, Nicola',opts:[['A','goes to a meeting.'],['B','talks to air hostesses.'],['C','works with her computer.']],ans:'C'},\n  {n:25,text:'What does Nicola like best?',opts:[['A','flying'],['B','working in the office'],['C','helping people']],ans:'A'},\n  {n:26,text:'The first thing Nicola does after a long journey is',opts:[['A','go to bed.'],['B','have a meal.'],['C','go to the office.']],ans:'B'},\n  {n:27,text:'Nicola would like to',opts:[['A','stay in the same job.'],['B','stop travelling.'],['C','earn more money.']],ans:'A'},\n];\nvar P5 = [\n  {n:28,word:'with',opts:[['A','to'],['B','with'],['C','among']],ans:'B'},\n  {n:29,word:'through',opts:[['A','through'],['B','on'],['C','of']],ans:'A'},\n  {n:30,word:'because',opts:[['A','so'],['B','because'],['C','why']],ans:'B'},\n  {n:31,word:'could',opts:[['A','could'],['B','must'],['C','may']],ans:'A'},\n  {n:32,word:'one',opts:[['A','one'],['B','some'],['C','any']],ans:'A'},\n  {n:33,word:'for',opts:[['A','for'],['B','during'],['C','since']],ans:'A'},\n  {n:34,word:'best',opts:[['A','good'],['B','best'],['C','better']],ans:'B'},\n  {n:35,word:'done',opts:[['A','did'],['B','do'],['C','done']],ans:'C'},\n];\nvar P6 = [\n  {n:36,text:'These are often made of leather and you wear them on your feet.',first:'s',ans:'shoes'},\n  {n:37,text:'This is a jacket and trousers in the same colour.',first:'s',ans:'suit'},\n  {n:38,text:'This will keep you dry in wet weather.',first:'r',ans:'raincoat'},\n  {n:39,text:'When the weather is too hot for long trousers, men and women often wear these with a T-shirt.',first:'s',ans:'shorts'},\n  {n:40,text:'You can put this on over a T-shirt if you feel cold.',first:'s',ans:'sweater'},\n];\n\/\/ Part 7 \\u2014 letter cloze: accepted answers\nvar P7Ans = {\n  41:['told'],\n  42:['had','decided','have'],\n  43:['are'],\n  44:['a'],\n  45:['the'],\n  46:['were'],\n  47:['me'],\n  48:['you'],\n  49:['to'],\n  50:['on','next'],\n};\n\/\/ Part 8\nvar P8Ans = {\n  51:['21 may','21st may','21.5','21\/5','21\/05','may 21','may 21st'],\n  52:['paris'],\n  53:['18.25','6.25 p.m.','6.25pm','6.25 pm','6:25 p.m.','6:25pm','6:25 pm','18:25'],\n  54:['one','a','1','suitcase','one suitcase','a suitcase','1 suitcase','one small suitcase','a small suitcase'],\n  55:['clothes','some clothes']\n};\n\n\/\/ ===== Rendering =====\nfunction renderMCQ(listEl, data){\n  data.forEach(function(q){\n    var div=document.createElement('div');\n    div.className='q-item'; div.dataset.qid=q.n;\n    var optsHTML='';\n    if(Array.isArray(q.opts)){\n      q.opts.forEach(function(o){\n        optsHTML += '<label class=\"opt\" data-letter=\"'+o[0]+'\"><input type=\"radio\" name=\"q'+q.n+'\" value=\"'+o[0]+'\"><span class=\"opt-letter\">'+o[0]+'<\/span> '+escapeHtml(o[1])+'<\/label>';\n      });\n    } else {\n      \/\/ string of letters (P1)\n      for(var i=0;i<q.opts.length;i++){\n        var L=q.opts[i];\n        optsHTML += '<label class=\"opt\" data-letter=\"'+L+'\"><input type=\"radio\" name=\"q'+q.n+'\" value=\"'+L+'\"><span class=\"opt-letter\">'+L+'<\/span><\/label>';\n      }\n    }\n    div.innerHTML = '<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.text)+'<\/span><\/div>'+\n                    '<div class=\"q-opts\">'+optsHTML+'<\/div>'+\n                    '<div class=\"feedback\"><\/div>';\n    listEl.appendChild(div);\n  });\n}\nfunction escapeHtml(s){return String(s).replace(\/[&<>\"']\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]})}\n\nrenderMCQ(document.getElementById('part1List'),P1);\nrenderMCQ(document.getElementById('part2List'),P2);\nrenderMCQ(document.getElementById('part3aList'),P3a);\nrenderMCQ(document.getElementById('part4List'),P4);\n\n\/\/ Part 5 \\u2014 render as MCQ list under the passage\nrenderMCQ(document.getElementById('part5List'),P5.map(function(q){return {n:q.n,text:'Question '+q.n+' \\u2014 choose the best word for the gap.',opts:q.opts,ans:q.ans}}));\n\n\/\/ Part 6 \\u2014 first-letter + dashes + input\n(function(){\n  var list=document.getElementById('part6List');\n  P6.forEach(function(q){\n    var dashCount = q.ans.length - 1;\n    var dashes = new Array(dashCount).fill('_').join(' ');\n    var div=document.createElement('div'); div.className='q-item'; div.dataset.qid=q.n;\n    div.innerHTML='<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.text)+'<\/span><\/div>'+\n                  '<div class=\"word-row\"><span class=\"first-letter\">'+q.first+'<\/span><input type=\"text\" class=\"input-blank\" data-q=\"'+q.n+'\" placeholder=\"'+dashes+'\" style=\"min-width:200px\"><\/div>'+\n                  '<div class=\"feedback\"><\/div>';\n    list.appendChild(div);\n  });\n})();\n\n\/\/ ===== Wire option clicks =====\ndocument.querySelectorAll('.opt').forEach(function(opt){\n  opt.addEventListener('click',function(e){\n    e.preventDefault();\n    var input=opt.querySelector('input');\n    var group=opt.parentElement;\n    group.querySelectorAll('.opt').forEach(function(o){o.classList.remove('selected')});\n    opt.classList.add('selected');\n    input.checked=true;\n    updateProgress();\n  });\n});\n\n\/\/ inputs\ndocument.querySelectorAll('.input-blank,.q-select').forEach(function(el){\n  el.addEventListener('input',updateProgress);\n  el.addEventListener('change',updateProgress);\n});\n\n\/\/ ===== Submit & Grade =====\nfunction getMcqAns(qid){\n  var sel=document.querySelector('input[name=\"q'+qid+'\"]:checked');\n  return sel?sel.value:null;\n}\nfunction getInputAns(qid){\n  var el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]');\n  return el?el.value.trim().toLowerCase():'';\n}\nfunction getSelectAns(qid){\n  var el=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n  return el?el.value:'';\n}\nfunction totalQs(){return 55}\n\nfunction answeredCount(){\n  var n=0;\n  \/\/ MCQ: P1(1-5) P2(6-10) P3a(11-15) P4(21-27) P5(28-35)\n  [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35].forEach(function(q){if(getMcqAns(q))n++});\n  [16,17,18,19,20].forEach(function(q){if(getSelectAns(q))n++});\n  \/\/ inputs\n  for(var i=36;i<=55;i++){if(getInputAns(i))n++}\n  return n;\n}\nfunction updateProgress(){\n  var a=answeredCount(), total=totalQs();\n  document.getElementById('answeredCount').textContent=a;\n  document.getElementById('progFill').style.width=(a\/total*100)+'%';\n}\n\ndocument.getElementById('submitBtn').addEventListener('click',function(){\n  var score=0;\n  \/\/ MCQ parts\n  var mcqParts=[P1,P2,P3a,P4,P5];\n  mcqParts.forEach(function(part){\n    part.forEach(function(q){\n      var v=getMcqAns(q.n), item=document.querySelector('.q-item[data-qid=\"'+q.n+'\"]');\n      if(!item)return;\n      item.classList.add('answered');\n      \/\/ mark correct\/incorrect opts\n      item.querySelectorAll('.opt').forEach(function(o){\n        var L=o.dataset.letter;\n        if(L===q.ans){o.classList.add('correct-opt')}\n        if(v===L)if(L!==q.ans){o.classList.add('wrong-opt')}\n      });\n      var fb=item.querySelector('.feedback');\n      if(v===q.ans){score++; item.classList.add('correct'); fb.textContent='\\u2714 Correct \\u2014 '+q.ans}\n      else{item.classList.add('wrong'); fb.textContent='\\u2718 Wrong \\u2014 correct answer: '+q.ans + (v?(' (you chose '+v+')'):' (no answer)')}\n    });\n  });\n  \/\/ Part 3b selects\n  var p3bFb=document.getElementById('part3bFeedback');\n  p3bFb.innerHTML='';\n  Object.keys(P3bAns).forEach(function(qid){\n    var v=getSelectAns(qid), correct=P3bAns[qid];\n    var el=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n    if(el){el.style.borderColor=(v===correct?'#10B981':'#EF4444'); el.style.borderWidth='2px'; el.style.borderStyle='solid'}\n    var note=document.createElement('div');\n    note.style.cssText='padding:8px 12px;border-radius:8px;margin-top:6px;font-size:13.5px;font-weight:600;'+(v===correct?'background:rgba(16,185,129,.12);color:#065F46':'background:rgba(239,68,68,.10);color:#991B1B');\n    note.innerHTML='<b>Q'+qid+'<\/b>: '+(v===correct?'\\u2714 Correct ('+correct+')':'\\u2718 Wrong \\u2014 correct: '+correct+(v?', you chose '+v:', no answer'));\n    p3bFb.appendChild(note);\n    if(v===correct)score++;\n  });\n  \/\/ Part 6\n  P6.forEach(function(q){\n    var v=getInputAns(q.n), el=document.querySelector('.input-blank[data-q=\"'+q.n+'\"]'), item=document.querySelector('.q-item[data-qid=\"'+q.n+'\"]');\n    if(!el||!item)return;\n    item.classList.add('answered');\n    var ok=(v===q.ans.toLowerCase());\n    if(ok){score++; el.classList.add('correct'); item.classList.add('correct'); item.querySelector('.feedback').textContent='\\u2714 Correct'}\n    else{el.classList.add('wrong'); item.classList.add('wrong'); item.querySelector('.feedback').textContent='\\u2718 Wrong \\u2014 correct: '+q.ans}\n  });\n  \/\/ Part 7\n  Object.keys(P7Ans).forEach(function(qid){\n    var v=getInputAns(qid), el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]'), accepted=P7Ans[qid];\n    if(!el)return;\n    var ok=accepted.indexOf(v)>=0;\n    if(ok){score++; el.classList.add('correct')} else {el.classList.add('wrong'); el.title='Correct: '+accepted.join(' \/ ')}\n  });\n  \/\/ Part 8\n  Object.keys(P8Ans).forEach(function(qid){\n    var v=getInputAns(qid), el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]'), accepted=P8Ans[qid];\n    if(!el)return;\n    var ok=accepted.indexOf(v)>=0;\n    if(ok){score++; el.classList.add('correct')} else {el.classList.add('wrong'); el.title='Correct: '+accepted.join(' \/ ')}\n  });\n\n  document.getElementById('scoreNow').textContent=score;\n  document.getElementById('finalScore').textContent=score;\n  var pct=Math.round(score\/55*100);\n  var msg='';\n  if(pct>=85) msg='\\u{1F3C6} Excellent! You are well prepared for the real KET exam.';\n  else if(pct>=70) msg='\\u{1F44D} Good job! A few more tests and you will be ready.';\n  else if(pct>=50) msg='\\u{1F4DA} Keep practising \\u2014 review the wrong answers above.';\n  else msg='\\u{1F4AA} Start with the basics. Reread the passages and try again.';\n  document.getElementById('resultsMsg').textContent=msg;\n  document.getElementById('resultsBanner').classList.add('show');\n  setTimeout(function(){document.getElementById('resultsBanner').scrollIntoView({behavior:'smooth',block:'center'})},120);\n});\n\ndocument.getElementById('resetBtn').addEventListener('click',function(){\n  if(!confirm('Reset all answers?'))return;\n  location.reload();\n});\n\n\/\/ Writing word counter\nvar ta=document.getElementById('writingArea'),wc=document.getElementById('wcCounter');\nta.addEventListener('input',function(){\n  var w=ta.value.trim().split(\/\\s+\/).filter(Boolean).length;\n  wc.textContent=w+' words \\u00B7 target 25\\u201335';\n  wc.classList.remove('ok','over');\n  if(w>=25)if(w<=35)wc.classList.add('ok');\n  else if(w>35)wc.classList.add('over');\n});\ndocument.getElementById('sampleToggle').addEventListener('click',function(){\n  document.getElementById('sampleBox').classList.toggle('show');\n});\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>All English 4U Grammar IELTS TOEFL Cambridge CELPIP Dictation Back Grammar IELTS TOEFL Cambridge CELPIP Dictation Cambridge English &#183; Key (KET) KET 2 &#8212; Test 4Reading &amp; Writing Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-1205","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=1205"}],"version-history":[{"count":9,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1205\/revisions"}],"predecessor-version":[{"id":5963,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1205\/revisions\/5963"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=1205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}