" {{{ycm
Execute (error kind):
  let completed_item = {}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual [], result

Execute (error abbr):
  let completed_item = {'kind': 'm'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual [], result

Execute (empty parameter):
  let completed_item = {'kind': 'm', 'word': 'fun', 'abbr': 'fun      (method) A.fun()'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['()'], result

Execute (empty parameter 2):
  let completed_item = {'kind': 'm', 'word': 'fun', 'abbr': 'fun      (method) fun()'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['()'], result

Execute (array.concat):
  let completed_item = {'word': 'concat', 'menu': '', 'info': '', 'kind': 'm', 'abbr': 'concat         (method) Array<number>.concat(...items: number[][]): number[] (+1 overload)'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(...items)'], result

Execute (array.every):
  let completed_item = {'word': 'every', 'menu': '', 'info': '', 'kind': 'm', 'abbr': 'every          (method) Array<number>.every(callbackfn: (this: void, value: number, index: number, array: number[]) => boolean): boolean (+2 overloads)'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(callbackfn)'], result

Execute (array.indexOf):
  let completed_item = {'word': 'indexOf', 'menu': '', 'info': '', 'kind': 'm', 'abbr': 'indexOf        (method) Array<number>.indexOf(searchElement: number, fromIndex?: number): number'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(searchElement, fromIndex)'], result

Execute (array.map):
  let completed_item = {'word': 'map', 'menu': '', 'info': '', 'kind': 'm', 'abbr': 'map            (method) Array<number>.map<U>(this: [number, number, number, number, number], callbackfn: (this: void, value: number, index: number, array: number[]) => U): [U, U, U, U, U] (+14 overloads)'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(this, callbackfn)'], result
"}}}

" {{{ deoplete
Execute (error kind):
  let completed_item = {}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual [], result

Execute (error info):
  let completed_item = {'kind': 'M'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual [], result

Execute (empty parameter):
  let completed_item = {'kind': 'M', 'word': 'fun', 'info': 'A.fun()'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['()'], result

Execute (empty parameter 2):
  let completed_item = {'kind': 'M', 'word': 'fun', 'info': 'fun()'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['()'], result

Execute (array.concat):
  let completed_item = {'word': 'concat', 'menu': 'TS Array<number>.concat(...i..(+1 overload)', 'info': 'Array<number>.concat(...items: number[][]): number[] (+1 overload)\nCombines two or more arrays.', 'kind': 'M', 'abbr': 'concat'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(...items)'], result

Execute (array.every):
  let completed_item = {'word': 'every', 'menu': 'TS Array<number>.every(callb..+2 overloads)', 'info': 'Array<number>.every(callbackfn: (this: void , value: number, index: number, array: number[]) => boolean): boolean (+2 overloads)\nDetermines whether all the members of an array satisfy the specified test.', 'kind': 'M', 'abbr': 'every'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(callbackfn)'], result

Execute (array.indexOf):
  let completed_item = {'word': 'indexOf', 'menu': 'TS Array<number>.indexOf(sea..mber): number', 'info': 'Array<number>.indexOf(searchElement: number, fromIndex?: number): number\nReturns the index of the first occurrence of a value in an array.', 'kind': 'M', 'abbr': 'indexOf'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(searchElement, fromIndex)'], result

Execute (array.map):
  let completed_item = {'word': 'map', 'menu': 'TS Array<number>.map<U>(this..14 overloads)', 'info': 'Array<number>.map<U>(this: [number, number, number, number, number], callbackfn: (this: void, value: number, index: number, array: number[]) => U): [U, U, U, U, U] (+14 overloads) \nCalls a defined callback function on each element of an array, and returns an array that contains the results.', 'kind': 'M', 'abbr' : 'map'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(this, callbackfn)'], result
"}}}

" {{{ neocomplete
Execute (empty parameter):
  let completed_item = {'kind': '', 'word': 'fun', 'menu': '(method) A.fun()'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['()'], result

Execute (empty parameter 2):
  let completed_item = {'kind': '', 'word': 'fun', 'menu': '(method) fun()'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['()'], result

Execute (array.concat):
  let completed_item = {'word': 'concat', 'menu': '(method) Array<number>.concat(...items: number[][]): number[] (+1 overload)\nCombines two or more arrays.', 'kind': '', 'abbr': 'concat'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(...items)'], result

Execute (array.every):
  let completed_item = {'word': 'every', 'menu': '(method) Array<number>.every(callbackfn: (this: void , value: number, index: number, array: number[]) => boolean): boolean (+2 overloads)\nDetermines whether all the members of an array satisfy the specified test.', 'kind': '', 'abbr': 'every'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(callbackfn)'], result

Execute (array.indexOf):
  let completed_item = {'word': 'indexOf', 'menu': '(method) Array<number>.indexOf(searchElement: number, fromIndex?: number): number\nReturns the index of the first occurrence of a value in an array.', 'kind': '', 'abbr': 'indexOf'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(searchElement, fromIndex)'], result

Execute (array.map):
  let completed_item = {'word': 'map', 'menu': '(method) Array<number>.map<U>(this: [number, number, number, number, number], callbackfn: (this: void, value: number, index: number, array: number[]) => U): [U, U, U, U, U] (+14 overloads) \nCalls a defined callback function on each element of an array, and returns an array that contains the results.', 'kind': '', 'abbr' : 'map'}
  let result = cm_parser#typescript#parameters(completed_item)
  AssertEqual ['(this, callbackfn)'], result
"}}}
