from typing import Tuple
from typing import List


def generate_test_data() -> Tuple[List[List[str]], dict]:
    """
    Returns tuple of transactions, counts
    """
    # Make a list of items
    transactions = [
        ("A", "B", "C"),
        ("A", "B", "C", "D"),
        ("A", "D"),
        ("F"),
        ("D"),
        ("B", "C", "D"),
        ("C", "D"),
        ("W", "X", "Y", "Z"),
        ("W", "X", "Y", "Z"),
        ("W", "X", "Y", "Z"),
        ("W", "X", "Y", "Z"),
    ]

    counts = {
        ("A",): 3,
        ("A", "B"): 2,
        ("A", "C"): 2,
        ("A", "D"): 2,
        ("A", "B", "C"): 2,
        ("A", "B", "D"): 1,
        ("A", "C", "D"): 1,
        ("A", "B", "C", "D"): 1,
        ("B",): 3,
        ("B", "C"): 3,
        ("B", "D"): 2,
        ("B", "C", "D"): 2,
        ("C",): 4,
        ("C", "D"): 3,
        ("D",): 5,
        ("F",): 1,
        ("W",): 4,
        ("W", "X"): 4,
        ("W", "Y"): 4,
        ("W", "Z"): 4,
        ("W", "X", "Y"): 4,
        ("W", "X", "Z"): 4,
        ("W", "Y", "Z"): 4,
        ("W", "X", "Y", "Z"): 4,
        ("X",): 4,
        ("X", "Y"): 4,
        ("X", "Z"): 4,
        ("X", "Y", "Z"): 4,
        ("Y",): 4,
        ("Y", "Z"): 4,
        ("Z",): 4,
    }

    return transactions, counts