in bijection-core/src/main/scala/com/twitter/bijection/EnglishInt.scala [103:122]
private def numlist2int(numbers: List[Int]): Int = {
val (id, ik, im) = (numbers.indexOf(d), numbers.indexOf(k), numbers.indexOf(m))
val has_100 = id > -1
val has_higher = (ik > -1 || im > -1)
val hundred_before_higher = has_100 && has_higher && ((id < ik) || (id < im))
if (hundred_before_higher) {
val ilist = List(ik, im).filter(x => x != -1).filter(x => x > id)
val ix = if (ilist.size > 1) {
math.min(ilist(0), ilist(1))
} else ilist(0)
val (hprev, hnext) = numbers.splitAt(id - 1)
val (prev, next) = hnext.splitAt(ix - id + 2)
fold(hprev) + fold100(prev) + numlist2int(next)
} else {
fold(numbers)
}
}