File size: 2,366 Bytes
f91a684
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { MongoClient } from 'mongodb';

async function main() {
  const uri = "mongodb+srv://healthbuddy:healthbuddy123@healthbuddy.sdlagac.mongodb.net/";
  const client = new MongoClient(uri);
  try {
    await client.connect();
    const db = client.db('aptitude');
    const coll = db.collection('verbal_ability');
    const doc = await coll.findOne({ chapter_name: "Reading Comprehension" });
    
    const raw = doc.content;
    const parts = raw.split(/(?:^|\n)(Q\d+)\.\s+/);
    
    let currentPassage = '';
    let pMatch = parts[0].match(/(?:^|\n)\d+\.\s+PRACTICE SET[^\n]*\n(?:[^\n]*Each question is followed by[^\n]*\n)?(?:[^\n]*Type \d+[^\n]*\n)?([\s\S]*)/i);
    if (pMatch) {
      currentPassage = pMatch[1].trim();
    } else {
        // Fallback: take last part of parts[0]
        const lines = parts[0].split('\n');
        // Let's take last 20 lines if no practice set? 
        currentPassage = "FALLBACK: " + parts[0].slice(-500);
    }
    
    console.log("PASSAGE 1 LENGTH:", currentPassage.length);
    console.log("PASSAGE 1 START:", currentPassage.substring(0, 100));
    
    for (let i = 1; i < parts.length; i += 2) {
        const qLabel = parts[i];
        const body = parts[i + 1] ?? '';
        
        const answerIdx = body.search(/(?:^|\n)Answer:/im);
        const afterAnswer = answerIdx >= 0 ? body.slice(answerIdx) : '';
        const expIdx = afterAnswer.search(/(?:^|\n)Explanation:/im);
        
        if (expIdx >= 0) {
            const afterExplText = afterAnswer.slice(expIdx);
            // The explanation might end, and a new passage might begin.
            // How do we separate them?
            // "Explanation: blah blah.\n\nNew Passage text..."
            // If we split by \n\n, the first part is the explanation.
            let sections = afterExplText.split(/\n{2,}/);
            let explanation = sections[0].replace(/(?:^|\n)Explanation:\s*/im, '').trim();
            
            let possibleNextPassage = sections.slice(1).join('\n\n').trim();
            if (possibleNextPassage.length > 50) {
                console.log(`\n--- FOUND PASSAGE BEFORE Q${parseInt(qLabel.substring(1))+1} ---`);
                console.log(possibleNextPassage.substring(0, 100));
            }
        }
    }
    
  } catch(e) {
    console.error(e);
  } finally {
    await client.close();
  }
}
main();