var mapping = {
  "bob": {
    "NOUN": "substantiv",
    "VERB": "verb",
    "ADJ": "adjektiv",
    "ADP": "preposisjon",
    "PFX": "prefiks",
    "ADV": "adverb",
    "DET": "determinativ",
    "PROPN": "egennavn",
    "ABBR": "forkortelse",
    "INTJ": "interjeksjon",
    "SYM": "symbol",
    "PRON": "pronomen",
    "CCONJ": "konjunksjon",
    "SCONJ": "subjunksjon",
    "INFM": "infinitivsmerke",
    "COMPPFX": "i sammensetting",
    "Masc": "hankjønn",
    "Fem": "hunkjønn",
    "Neuter": "intetkjønn",
    "Uninfl": "ubøyelig"
  },
  "nob": {
    "NOUN": "substantiv",
    "VERB": "verb",
    "ADJ": "adjektiv",
    "ADP": "preposisjon",
    "PFX": "prefiks",
    "ADV": "adverb",
    "DET": "determinativ",
    "PROPN": "eigennamn",
    "ABBR": "forkorting",
    "INTJ": "interjeksjon",
    "SYM": "symbol",
    "PRON": "pronomen",
    "CCONJ": "konjunksjon",
    "SCONJ": "subjunksjon",
    "INFM": "infinitivsmerke",
    "COMPPFX": "i samansetjing",
    "Masc": "hankjønn",
    "Fem": "hokjønn",
    "Neuter": "inkjekjønn",
    "Uninfl": "ubøyd"
  }
}

var group_list = function(grps, dictionary) {
  var grp_collection = new Set()
  var noun_grp_collection = new Set()
  grps.forEach(function(lemma){
    lemma.paradigm_info.forEach(function(grp){
      if (grp.tags){
        if(grp.tags[0] == 'NOUN') {
          noun_grp_collection.add(grp.tags[1])
        }else{
          grp_collection.add(mapping[dictionary][grp.tags[0]])
        }
      }
    })
  })
  if (noun_grp_collection) {
    let noun_grp_text = 'substantiv, '
    if (noun_grp_collection.size == 3) {
      noun_grp_text += mapping[dictionary]['Masc'] + ', ' + mapping[dictionary]['Fem'] + ' eller ' + mapping[dictionary]['Neuter']
    } else {
      noun_grp_text += Array.from(noun_grp_collection).map(code => mapping[dictionary][code]).sort().join(' eller ')
    }
    grp_collection.add(noun_grp_text)
  }
  return Array.from(grp_collection).join(' - ')
}

export default { group_list}