@@ -17,6 +17,7 @@ import qualified Data.Text.Lazy as TL
17import qualified Data.Text.Lazy.Builder as TB
17import qualified Data.Text.Lazy.Builder as TB
18import qualified Data.Text.Encoding as E
18import qualified Data.Text.Encoding as E
19import Control.Exception (SomeException, evaluate, try)
19import Control.Exception (SomeException, evaluate, try)
20+import Data.Text.Foreign
20import qualified Data.Text.Fusion as S
21import qualified Data.Text.Fusion as S
21import qualified Data.Text.Fusion.Common as S
22import qualified Data.Text.Fusion.Common as S
22import Data.Text.Fusion.Size
23import Data.Text.Fusion.Size
@@ -573,6 +574,13 @@ t_builderAssociative s1 s2 s3 = TB.toLazyText (b1 `mappend` (b2 `mappend` b3)) =
573 b2 = TB.fromText (packS s2)
574 b2 = TB.fromText (packS s2)
574 b3 = TB.fromText (packS s3)
575 b3 = TB.fromText (packS s3)
579+t_dropWord16 m t = dropWord16 m t `T.isSuffixOf` t
580+t_takeWord16 m t = takeWord16 m t `T.isPrefixOf` t
581+t_take_drop_16 m t = T.append (takeWord16 n t) (dropWord16 n t) == t
576-- Regression tests.
584-- Regression tests.
577s_filter_eq s = S.filter p t == S.streamList (filter p s)
585s_filter_eq s = S.filter p t == S.streamList (filter p s)
578 where p = (/= S.last t)
586 where p = (/= S.last t)
@@ -955,5 +963,11 @@ tests = [
955 testProperty "t_builderSingleton" t_builderSingleton,
963 testProperty "t_builderSingleton" t_builderSingleton,
956 testProperty "t_builderFromText" t_builderFromText,
964 testProperty "t_builderFromText" t_builderFromText,
957 testProperty "t_builderAssociative" t_builderAssociative
965 testProperty "t_builderAssociative" t_builderAssociative
968+ testGroup "lowlevel" [
969+ testProperty "t_dropWord16" t_dropWord16,
970+ testProperty "t_takeWord16" t_takeWord16,
971+ testProperty "t_take_drop_16" t_take_drop_16