def test_merge_same_coherent_chunks__multiple_coherent_are_merged():
    x = [
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
    ]

    res = merge_same_coherent_chunks(x)
    assert [Chunk(size=25, is_silence=False)] == res
def test_merge_same_coherent_chunks__multiple_coherent_with_diff_are_merged():
    x = [
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=True),
        Chunk(size=5, is_silence=True),
        Chunk(size=5, is_silence=False),
        Chunk(size=5, is_silence=False),
    ]

    res = merge_same_coherent_chunks(x)
    assert [
        Chunk(size=15, is_silence=False),
        Chunk(size=10, is_silence=True),
        Chunk(size=10, is_silence=False),
    ] == res
def test_merge_same_coherent_chunks__empty_list__returns_empty_list():
    x = []
    res = merge_same_coherent_chunks(x)
    assert [] == res
def test_merge_same_coherent_chunks__two_different__returns_two_different():
    x = [Chunk(size=5, is_silence=True), Chunk(size=5, is_silence=False)]

    res = merge_same_coherent_chunks(x)
    assert [Chunk(size=5, is_silence=True),
            Chunk(size=5, is_silence=False)] == res
def test_merge_same_coherent_chunks__two_silences__returns_one_silence():
    x = [Chunk(size=5, is_silence=True), Chunk(size=5, is_silence=True)]

    res = merge_same_coherent_chunks(x)
    assert [Chunk(size=10, is_silence=True)] == res
def test_merge_same_coherent_chunks__single_entry__returns_single_entry():
    x = [Chunk(size=5, is_silence=True)]
    res = merge_same_coherent_chunks(x)
    assert [Chunk(size=5, is_silence=True)] == res