LTE Primopredajnik
Loading...
Searching...
No Matches
tests.test_viterbi_decoder Namespace Reference

Functions

 make_encoder_decoder (rate=1/3)
 test_viterbi_happy_path_exact_recovery (length)
 test_viterbi_single_bit_input ()
 test_viterbi_empty_input ()
 test_viterbi_input_shorter_than_one_symbol ()
 test_viterbi_truncates_extra_bits ()
 test_viterbi_ignores_wrong_rate (wrong_rate)
 test_viterbi_rate_does_not_affect_result ()
 test_viterbi_with_small_noise ()
 test_viterbi_with_heavy_noise ()
 test_viterbi_output_is_binary ()
 test_viterbi_is_deterministic ()

Detailed Description

Test suite za ViterbiDecoder (hard-decision).

Ciljevi testiranja:
- provjera ispravnosti (happy path)
- robusnost na neidealne ulaze (unhappy path)
- ponašanje na rubnim slučajevima
- determinističnost i konzistentnost izlaza

Testovi: 
- ispituju isključivo ponašanje sistema

Function Documentation

◆ make_encoder_decoder()

tests.test_viterbi_decoder.make_encoder_decoder ( rate = 1/3)
Kreira standardni konvolucijski encoder i Viterbi dekoder.

Parametri
----------
rate : float
    Kodna stopa (informativna za dekoder).

Povrat
------
enc : ConvolutionalEncoder
dec : ViterbiDecoder

◆ test_viterbi_empty_input()

tests.test_viterbi_decoder.test_viterbi_empty_input ( )
EDGE CASE:
Prazan ulaz → prazan izlaz.

◆ test_viterbi_happy_path_exact_recovery()

tests.test_viterbi_decoder.test_viterbi_happy_path_exact_recovery ( length)
HAPPY PATH:
Bez šuma i sa ispravnim generatorima,
dekoder mora TAČNO vratiti originalne bitove.

◆ test_viterbi_ignores_wrong_rate()

tests.test_viterbi_decoder.test_viterbi_ignores_wrong_rate ( wrong_rate)
UNHAPPY PATH:
Pogrešno specificiran rate NE SMIJE slomiti dekoder.

◆ test_viterbi_input_shorter_than_one_symbol()

tests.test_viterbi_decoder.test_viterbi_input_shorter_than_one_symbol ( )
EDGE CASE:
Manje bitova nego n_out → nema dekodiranja.

◆ test_viterbi_is_deterministic()

tests.test_viterbi_decoder.test_viterbi_is_deterministic ( )
DETERMINISTIČNOST:
Isti ulaz → isti izlaz.

◆ test_viterbi_output_is_binary()

tests.test_viterbi_decoder.test_viterbi_output_is_binary ( )
Izlaz dekodera mora sadržavati isključivo 0 i 1.

◆ test_viterbi_rate_does_not_affect_result()

tests.test_viterbi_decoder.test_viterbi_rate_does_not_affect_result ( )
REGRESIONI TEST:
Različit rate ne smije promijeniti rezultat
ako su generatori isti.

◆ test_viterbi_single_bit_input()

tests.test_viterbi_decoder.test_viterbi_single_bit_input ( )
HAPPY PATH (minimalni slučaj):
Dekodiranje jednog bita.

◆ test_viterbi_truncates_extra_bits()

tests.test_viterbi_decoder.test_viterbi_truncates_extra_bits ( )
UNHAPPY PATH:
Višak bitova na ulazu se ignoriše, ali ako
formira novi puni simbol, dekoder ga dekodira.

◆ test_viterbi_with_heavy_noise()

tests.test_viterbi_decoder.test_viterbi_with_heavy_noise ( )
EXTREME UNHAPPY PATH:
Jak šum → dekoder NE SMIJE pucati.

◆ test_viterbi_with_small_noise()

tests.test_viterbi_decoder.test_viterbi_with_small_noise ( )
UNHAPPY PATH:
Mali broj grešaka (bit flip) → dekoder i dalje radi.