Files
Passgeny/python/passgeny/phogen.py
Mitja HORVAT ea5abfe149 python: Implement phogen encode
Implement phogen.encode() to encode Bhashes to phogen strings. This
commit also adds unit tests for the above function.
2021-11-09 19:26:03 +01:00

20 lines
512 B
Python

from passgeny import bhash, phogen_map
def encode(bh: bhash.Bhash, ph_len: int):
"""
Consume the Bhash and return a string of length ph_len
This function generates a phonetic representation of the binary data in
Bhash.
"""
phogen = ''
ngram = ' '
for x in range(ph_len):
ngram_space = phogen_map.g_phonetic_map[ngram]
n = bh.modulo(len(ngram_space))
letter = ngram_space[n]
ngram = ngram[1:] + letter
phogen += letter
return phogen