@alheimsins/bigfive-calculate-score

    3.0.0 • Public • Published

    Build Status Coverage Status js-standard-style

    bigfive-calculate-score

    Calculate score for big five tests

    Installation

    $ npm i @alheimsins/bigfive-calculate-score
    

    Usage

    Pass an object with property answers. Answers have to be an Array with domain and score. Facet is optional.

    const calculateScore = require('@alheimsins/bigfive-calculate-score')
    const result = {
      "timeElapsed": -51,
      "ip": "127.0.0.1",
      "lang": "en",
      "test": "50-IPIP-NEO-PI-R",
      "totalQuestions": 50,
      "answers": [
        {
          "domain": "A",
          "facet": "1",
          "score": "3"
        },
        {
          "domain": "A",
          "facet": "1",
          "score": "3"
        },
        {
          "domain": "E",
          "facet": "1",
          "score": "3"
        },
        {
          "domain": "E",
          "facet": "2",
          "score": "3"
        }
      ]
    }
    
    calculateScore(result)

    returns score for each factor

    {
      'A': {
        'score': 6,
        'count': 2,
        'result': 'neutral',
        'facet': {
          '1': {
            'score': 6,
            'count': 2,
            'result': 'neutral'
          }
        }
      },
      'E': {
        'score': 6,
        'count': 2,
        'result': 'neutral',
        'facet': {
          '1': {
            'score': 3,
            'count': 1,
            'result': 'neutral'
          },
          '2': {
            'score': 3,
            'count': 1,
            'result': 'neutral'
          }
        }
      }
    }

    Advanced

    If you want to override result pass a function as the calculateResult property

    The function signature must be

    function (score, count) {
      'use strict'
      // Do something
      return 'value'
    }

    Example

    const calculateScore = require('@alheimsins/bigfive-calculate-score')
    
    const calculateResult = (score, count) => {
      const average = score / count
      let result = 'nøytral'
      if (average > 3) {
        result = 'høy'
      } else if (average < 3) {
        result = 'lav'
      }
      return result
    }
    
    const result = {
      "timeElapsed": -51,
      "ip": "127.0.0.1",
      "lang": "en",
      "test": "50-IPIP-NEO-PI-R",
      "totalQuestions": 50,
      "calculateResult": calculateResult,
      "answers": [
        {
          "domain": "A",
          "facet": "1",
          "score": "3"
        },
        {
          "domain": "A",
          "facet": "1",
          "score": "3"
        },
        {
          "domain": "E",
          "facet": "1",
          "score": "3"
        },
        {
          "domain": "E",
          "facet": "2",
          "score": "3"
        }
      ]
    }
    
    calculateScore(result)

    Returns

    {
      'A': {
        'score': 6,
        'count': 2,
        'result': 'nøytral',
        'facet': {
          '1': {
            'score': 6,
            'count': 2,
            'result': 'nøytral'
          }
        }
      },
      'E': {
        'score': 6,
        'count': 2,
        'result': 'nøytral',
        'facet': {
          '1': {
            'score': 3,
            'count': 1,
            'result': 'nøytral'
          },
          '2': {
            'score': 3,
            'count': 1,
            'result': 'nøytral'
          }
        }
      }
    }

    Related

    • bigfive-web Website for five factor model of personality
    • b5-web Static website for big five tests

    License

    MIT

    About

    Created by with for Alheimsins

    Alhemsins logo

    Install

    npm i @alheimsins/bigfive-calculate-score

    DownloadsWeekly Downloads

    69

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    7.75 kB

    Total Files

    5

    Last publish

    Collaborators

    • zrrrzzt
    • maccyber