# All files / ramekin anaylsesample.js

0% Statements 0/17
0% Branches 0/2
0% Functions 0/1
0% Lines 0/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    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

     const Ramekin = require('./ramekin')
    const util = require('./lib/util')
    const moment = require('moment')
    const fs = require('fs')
    const snapshotTestTimeOptions = {
      start: moment('2019-04-22T23:48:05+00:00').subtract(1, 'day').toDate(),
      end: moment('2019-04-22T23:48:05+00:00').toDate()
    }
    const r = new Ramekin()
    const articles = JSON.parse(fs.readFileSync(`${__dirname}/tests/test-articles.json`, 'utf8'))
    r.ingestAll(articles)
    const searchOptions = r.buildSearchCriteria(snapshotTestTimeOptions)

    // find all the common phrases used in respective subject, over the past day
    const usedPhrases = r.usedPhrases(searchOptions)
    console.log(`There are ${usedPhrases.length} used phrases and ${Object.keys(r.docs).length} docs`)
    // duplicated data used later for sorting
    let trendPhrases = r.trendUsedPhrases(usedPhrases, searchOptions)
    // remove sub phrases (i.e. "Tour de", compared to "Tour de France")
    trendPhrases = r.removeSubPhrases(trendPhrases)
    const docPhrases = r.constructor.getDocPhrasesFromTrends(trendPhrases)

    // rank results - @todo: needs making nicer
    trendPhrases.sort((a, b) =>
      b.score === a.score ? b.phrase.length - a.phrase.length : b.score - a.score
    )

    console.log(trendPhrases.slice(0, 10))