from typing import List
import math


def tokenise_line(line: str) -> List[str]:
    """
    Create gene codon tokens for the given line.

    Args:
        line: Line to analyse

    Returns:
        List of tokens for the current line

    """
    line = line.strip().lower()
    line_tokens = []
    for idx in range(math.floor(len(line) / 3)):
        for char in range(3):
            start = (idx * 3) + char
            end = (idx * 3) + 3 + char
            codon = line[start:end]
            if len(codon) == 3 and 'n' not in codon and '-' not in codon:
                token = f'pos{idx + 1}#+{char + 1}#{codon}'
                line_tokens.append(token)
    return line_tokens