uart: add more cases to random COBS encoder tests

This commit is contained in:
Fischer Moseley 2026-02-25 10:20:44 -07:00
parent 85abacd9d0
commit 75e99d8013
1 changed files with 20 additions and 4 deletions

View File

@ -40,11 +40,27 @@ async def test_cobs_encode_static(ctx):
@simulate(ce)
async def test_cobs_encode_random(ctx):
num_tests = random.randint(1, 5)
for _ in range(num_tests):
for _ in range(10):
length = random.randint(1, 2000)
data = [random.randint(0, 255) for _ in range(length)]
await encode_and_compare(ctx, data, tx_irritate=True, rx_irritate=True)
population = [i for i in range(256)]
no_preference = [1] * 256
prefer_zeros = [10] + [1] * 255
prefer_nonzeros = [1] + [10] * 255
data_no_pref = random.choices(population, weights=no_preference, k=length)
data_pref_zeros = random.choices(population, weights=prefer_zeros, k=length)
data_pref_nonzeros = random.choices(
population, weights=prefer_nonzeros, k=length
)
await encode_and_compare(ctx, data_no_pref, tx_irritate=True, rx_irritate=True)
await encode_and_compare(
ctx, data_pref_zeros, tx_irritate=True, rx_irritate=True
)
await encode_and_compare(
ctx, data_pref_nonzeros, tx_irritate=True, rx_irritate=True
)
async def encode(ctx, data, tx_irritate, rx_irritate):