show validity of hamming code

This commit is contained in:
2024-08-01 18:33:33 -04:00
parent 09c8953728
commit d2371e956b
4 changed files with 61 additions and 8 deletions

View File

@@ -65,13 +65,14 @@ hammingW'Spec = describe "hammingW'" $ mapM_
[ ( "all zero", mkState 0, allZero, Nothing )
, ( "all one", mkState 0xffff, allOne, Nothing )
, ( "arbitrary", mkState 0x3c5a, arbitrary, Nothing )
, ( "invalid", mkState 0x3c5b, invalid, Nothing )
, ( "edit", es, allZero, Just eLoc )
] where
mkState c = initialState & hammingCode .~ c
es = mkState 0 & appMode .~ EditMode initialEditor
eLoc = Location (1, 1)
allZero =
[ [ ( hammingAttr, ' ' )
[ [ ( validAttr, '' )
, ( marginAttr, '0' )
, ( marginAttr, '1' )
, ( marginAttr, '2' )
@@ -103,7 +104,7 @@ hammingW'Spec = describe "hammingW'" $ mapM_
]
]
allOne =
[ [ ( hammingAttr, ' ' )
[ [ ( validAttr, '' )
, ( marginAttr, '0' )
, ( marginAttr, '1' )
, ( marginAttr, '2' )
@@ -135,7 +136,7 @@ hammingW'Spec = describe "hammingW'" $ mapM_
]
]
arbitrary =
[ [ ( hammingAttr, ' ' )
[ [ ( validAttr, '' )
, ( marginAttr, '0' )
, ( marginAttr, '1' )
, ( marginAttr, '2' )
@@ -166,5 +167,37 @@ hammingW'Spec = describe "hammingW'" $ mapM_
, ( bodyAttr, '0' )
]
]
invalid =
[ [ ( invalidAttr, 'X' )
, ( marginAttr, '0' )
, ( marginAttr, '1' )
, ( marginAttr, '2' )
, ( marginAttr, '3' )
]
, [ ( marginAttr, '0' )
, ( zeroAttr, '1' )
, ( checkAttr, '1' )
, ( checkAttr, '0' )
, ( bodyAttr, '1' )
]
, [ ( marginAttr, '1' )
, ( checkAttr, '1' )
, ( bodyAttr, '0' )
, ( bodyAttr, '1' )
, ( bodyAttr, '0' )
]
, [ ( marginAttr, '2' )
, ( checkAttr, '0' )
, ( bodyAttr, '0' )
, ( bodyAttr, '1' )
, ( bodyAttr, '1' )
]
, [ ( marginAttr, '3' )
, ( bodyAttr, '1' )
, ( bodyAttr, '1' )
, ( bodyAttr, '0' )
, ( bodyAttr, '0' )
]
]
--jl