Beispiel #1
0
def test_decode():
    d = 10
    gen = rs.generator(GF, d)
    orig = [
        224, 75, 253, 239, 175, 107, 19, 144, 42, 188,
        236, 112, 150, 198, 198, 150, 38, 39, 6, 50, 23, 118, 71, 117, 210, 64,
    ]
    msg = orig[:]
    assert rs.syndrome(msg, gen) == [0] * gen.degree

    index = len(msg) - 1
    msg[index] = 0
    synd = rs.syndrome(msg, gen)
    assert synd == [64, 192, 93, 231, 52, 92, 228, 49, 83, 245]

    indices = [2, 8, 15, 7, 0]
    msg = orig[:]
    for i in indices:
        msg[i] = i
    assert rs.decode(msg, gen) == orig[d:]

    indices = [0, 1, 2, 23, 24, 25]
    msg = orig[:]
    for i in indices:
        msg[i] = i

    with pytest.raises(ValueError):
        rs.decode(msg, gen)

    with pytest.raises(ValueError):
        rs.decode(range(len(msg)), gen)
Beispiel #2
0
def test_encode():
    data = [0x56, 0x34, 0x12]
    r = rs.encode(data, gen)
    assert r == [0xD9, 0x78, 0xE6, 0x37] + data

    msg = [236, 112, 150, 198, 198, 150, 38, 39, 6, 50, 23, 118, 71, 117, 210, 64]
    f = rs.encode(msg, rs.generator(GF, 10))
    assert f == [224, 75, 253, 239, 175, 107, 19, 144, 42, 188] + msg
Beispiel #3
0
def test_encode():
    data = [0x56, 0x34, 0x12]
    r = rs.encode(data, gen)
    assert r == [0xd9, 0x78, 0xe6, 0x37] + data

    msg = [
        236, 112, 150, 198, 198, 150, 38, 39, 6, 50, 23, 118, 71, 117, 210, 64
    ]
    f = rs.encode(msg, rs.generator(GF, 10))
    assert f == [224, 75, 253, 239, 175, 107, 19, 144, 42, 188] + msg
Beispiel #4
0
def test_decode():
    d = 10
    gen = rs.generator(GF, d)
    orig = [
        224,
        75,
        253,
        239,
        175,
        107,
        19,
        144,
        42,
        188,
        236,
        112,
        150,
        198,
        198,
        150,
        38,
        39,
        6,
        50,
        23,
        118,
        71,
        117,
        210,
        64,
    ]
    msg = orig[:]
    assert rs.syndrome(msg, gen) == [0] * gen.degree

    index = len(msg) - 1
    msg[index] = 0
    synd = rs.syndrome(msg, gen)
    assert synd == [64, 192, 93, 231, 52, 92, 228, 49, 83, 245]

    indices = [2, 8, 15, 7, 0]
    msg = orig[:]
    for i in indices:
        msg[i] = i
    assert rs.decode(msg, gen) == orig[d:]

    indices = [0, 1, 2, 23, 24, 25]
    msg = orig[:]
    for i in indices:
        msg[i] = i

    with pytest.raises(ValueError):
        rs.decode(msg, gen)

    with pytest.raises(ValueError):
        rs.decode(range(len(msg)), gen)
Beispiel #5
0
from ecc import galois as g
from ecc import polynomial as p
from ecc import reed_solomon as rs
import pytest

GF = g.Field(reversed([1, 0, 0, 0, 1, 1, 1, 0, 1]), p=2)
gen = rs.generator(GF, 4)


def test_gen():
    assert gen == p.Polynomial(GF, [0x40, 0x78, 0x36, 0x0f, 1])


def test_encode():
    data = [0x56, 0x34, 0x12]
    r = rs.encode(data, gen)
    assert r == [0xd9, 0x78, 0xe6, 0x37] + data

    msg = [
        236, 112, 150, 198, 198, 150, 38, 39, 6, 50, 23, 118, 71, 117, 210, 64
    ]
    f = rs.encode(msg, rs.generator(GF, 10))
    assert f == [224, 75, 253, 239, 175, 107, 19, 144, 42, 188] + msg


def test_decode():
    d = 10
    gen = rs.generator(GF, d)
    orig = [
        224, 75, 253, 239, 175, 107, 19, 144, 42, 188,
        236, 112, 150, 198, 198, 150, 38, 39, 6, 50, 23, 118, 71, 117, 210, 64,
Beispiel #6
0
from ecc import galois as g
from ecc import polynomial as p
from ecc import reed_solomon as rs
import pytest

GF = g.Field(reversed([1, 0, 0, 0, 1, 1, 1, 0, 1]), p=2)
gen = rs.generator(GF, 4)


def test_gen():
    assert gen == p.Polynomial(GF, [0x40, 0x78, 0x36, 0x0F, 1])


def test_encode():
    data = [0x56, 0x34, 0x12]
    r = rs.encode(data, gen)
    assert r == [0xD9, 0x78, 0xE6, 0x37] + data

    msg = [236, 112, 150, 198, 198, 150, 38, 39, 6, 50, 23, 118, 71, 117, 210, 64]
    f = rs.encode(msg, rs.generator(GF, 10))
    assert f == [224, 75, 253, 239, 175, 107, 19, 144, 42, 188] + msg


def test_decode():
    d = 10
    gen = rs.generator(GF, d)
    orig = [
        224,
        75,
        253,
        239,