format with ormolu

This commit is contained in:
Evgeny Poberezkin 2023-10-02 20:55:36 +01:00
parent b3e9c7f7dc
commit 7c73a44a51

View File

@ -4,404 +4,462 @@
module MarkdownDiffTests where
import qualified Data.List.NonEmpty as NE
import qualified Data.Sequence as S
import Simplex.Chat.Markdown
import Simplex.Chat.MarkdownDiff
( FormatChar(..),
DiffChar(..),
DiffPlainChar(..),
DiffStatus(..),
DiffPlainStatus(..),
DiffFormatStatus(..),
LeftSide(..),
RightSide(..),
diff,
plainDiff )
import System.Console.ANSI.Types
import Test.Hspec
import qualified Data.List.NonEmpty as NE
import System.Console.ANSI.Types
import Test.Hspec
markdownDiffTests :: Spec
markdownDiffTests = do
formattedEditedTextTests
formattedEditedTextTests :: Spec
formattedEditedTextTests = describe "show edits" do
it "empty no change" do
diff
(LeftSide $ S.fromList
[
])
(RightSide $ S.fromList
[
])
diff
( LeftSide $
S.fromList
[]
)
( RightSide $
S.fromList
[]
)
`shouldBe` S.fromList
[
]
[]
it "no change" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' Nothing
])
(RightSide $ S.fromList
[ FormatChar 'H' Nothing
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' Nothing
]
)
( RightSide $
S.fromList
[ FormatChar 'H' Nothing
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat
]
it "add 1 char to empty" do
diff
(LeftSide $ S.fromList
[
])
(RightSide $ S.fromList
[ FormatChar 'H' Nothing
])
diff
( LeftSide $
S.fromList
[]
)
( RightSide $
S.fromList
[ FormatChar 'H' Nothing
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) Inserted
[ DiffChar (FormatChar 'H' Nothing) Inserted
]
it "del the one and only" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' Nothing
])
(RightSide $ S.fromList
[
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' Nothing
]
)
( RightSide $
S.fromList
[]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) Deleted
[ DiffChar (FormatChar 'H' Nothing) Deleted
]
it "one character change" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'r' Nothing
, FormatChar 'l' Nothing
, FormatChar 'l' Nothing
, FormatChar 'o' Nothing
])
(RightSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'e' Nothing
, FormatChar 'l' Nothing
, FormatChar 'l' Nothing
, FormatChar 'o' Nothing
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'r' Nothing,
FormatChar 'l' Nothing,
FormatChar 'l' Nothing,
FormatChar 'o' Nothing
]
)
( RightSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'e' Nothing,
FormatChar 'l' Nothing,
FormatChar 'l' Nothing,
FormatChar 'o' Nothing
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'r' Nothing) Deleted
, DiffChar (FormatChar 'e' Nothing) Inserted
, DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'r' Nothing) Deleted,
DiffChar (FormatChar 'e' Nothing) Inserted,
DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat
]
it "more1" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'r' Nothing
, FormatChar 'l' Nothing
, FormatChar 'l' Nothing
, FormatChar 'o' Nothing
])
(RightSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'e' Nothing
, FormatChar 'l' Nothing
, FormatChar 'l' Nothing
, FormatChar 'o' Nothing
, FormatChar 'x' Nothing
, FormatChar 'y' Nothing
, FormatChar 'z' Nothing
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'r' Nothing,
FormatChar 'l' Nothing,
FormatChar 'l' Nothing,
FormatChar 'o' Nothing
]
)
( RightSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'e' Nothing,
FormatChar 'l' Nothing,
FormatChar 'l' Nothing,
FormatChar 'o' Nothing,
FormatChar 'x' Nothing,
FormatChar 'y' Nothing,
FormatChar 'z' Nothing
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'r' Nothing) Deleted
, DiffChar (FormatChar 'e' Nothing) Inserted
, DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'x' Nothing) Inserted
, DiffChar (FormatChar 'y' Nothing) Inserted
, DiffChar (FormatChar 'z' Nothing) Inserted
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'r' Nothing) Deleted,
DiffChar (FormatChar 'e' Nothing) Inserted,
DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'l' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'x' Nothing) Inserted,
DiffChar (FormatChar 'y' Nothing) Inserted,
DiffChar (FormatChar 'z' Nothing) Inserted
]
it "more2" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'r' Nothing
, FormatChar 'l' Nothing
, FormatChar 'l' Nothing
, FormatChar 'o' Nothing
])
(RightSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'e' Nothing
, FormatChar 'x' Nothing
, FormatChar 'y' Nothing
, FormatChar 'z' Nothing
, FormatChar 'o' Nothing
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'r' Nothing,
FormatChar 'l' Nothing,
FormatChar 'l' Nothing,
FormatChar 'o' Nothing
]
)
( RightSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'e' Nothing,
FormatChar 'x' Nothing,
FormatChar 'y' Nothing,
FormatChar 'z' Nothing,
FormatChar 'o' Nothing
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'r' Nothing) Deleted
, DiffChar (FormatChar 'l' Nothing) Deleted
, DiffChar (FormatChar 'l' Nothing) Deleted
, DiffChar (FormatChar 'e' Nothing) Inserted
, DiffChar (FormatChar 'x' Nothing) Inserted
, DiffChar (FormatChar 'y' Nothing) Inserted
, DiffChar (FormatChar 'z' Nothing) Inserted
, DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'r' Nothing) Deleted,
DiffChar (FormatChar 'l' Nothing) Deleted,
DiffChar (FormatChar 'l' Nothing) Deleted,
DiffChar (FormatChar 'e' Nothing) Inserted,
DiffChar (FormatChar 'x' Nothing) Inserted,
DiffChar (FormatChar 'y' Nothing) Inserted,
DiffChar (FormatChar 'z' Nothing) Inserted,
DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat
]
it "more3" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' $ Just Bold
, FormatChar 'H' $ Just Bold
, FormatChar 'r' Nothing
, FormatChar 'l' $ Just Secret
, FormatChar 'l' Nothing
, FormatChar 'o' $ Just $ colored Green
])
(RightSide $ S.fromList
[ FormatChar 'H' $ Just Italic
, FormatChar 'H' $ Just Bold
, FormatChar 'e' $ Just $ colored Cyan
, FormatChar 'x' Nothing
, FormatChar 'y' Nothing
, FormatChar 'z' $ Just Secret
, FormatChar 'o' $ Just $ colored Blue
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' $ Just Bold,
FormatChar 'H' $ Just Bold,
FormatChar 'r' Nothing,
FormatChar 'l' $ Just Secret,
FormatChar 'l' Nothing,
FormatChar 'o' $ Just $ colored Green
]
)
( RightSide $
S.fromList
[ FormatChar 'H' $ Just Italic,
FormatChar 'H' $ Just Bold,
FormatChar 'e' $ Just $ colored Cyan,
FormatChar 'x' Nothing,
FormatChar 'y' Nothing,
FormatChar 'z' $ Just Secret,
FormatChar 'o' $ Just $ colored Blue
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' (Just Bold)) $ UnchangedChar $ ChangedToFormat $ Just Italic
, DiffChar (FormatChar 'H' (Just Bold)) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'r' Nothing) Deleted
, DiffChar (FormatChar 'l' (Just Secret)) Deleted
, DiffChar (FormatChar 'l' Nothing) Deleted
, DiffChar (FormatChar 'e' (Just $ colored Cyan)) Inserted
, DiffChar (FormatChar 'x' Nothing) Inserted
, DiffChar (FormatChar 'y' Nothing) Inserted
, DiffChar (FormatChar 'z' (Just Secret)) Inserted
, DiffChar (FormatChar 'o' (Just $ colored Green)) $ UnchangedChar $ ChangedToFormat $ Just $ colored Blue
[ DiffChar (FormatChar 'H' (Just Bold)) $ UnchangedChar $ ChangedToFormat $ Just Italic,
DiffChar (FormatChar 'H' (Just Bold)) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'r' Nothing) Deleted,
DiffChar (FormatChar 'l' (Just Secret)) Deleted,
DiffChar (FormatChar 'l' Nothing) Deleted,
DiffChar (FormatChar 'e' (Just $ colored Cyan)) Inserted,
DiffChar (FormatChar 'x' Nothing) Inserted,
DiffChar (FormatChar 'y' Nothing) Inserted,
DiffChar (FormatChar 'z' (Just Secret)) Inserted,
DiffChar (FormatChar 'o' (Just $ colored Green)) $ UnchangedChar $ ChangedToFormat $ Just $ colored Blue
]
it "more4" do
diff
(LeftSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'r' Nothing
, FormatChar 'l' Nothing
, FormatChar '~' Nothing
, FormatChar '!' Nothing
, FormatChar '@' Nothing
, FormatChar 'l' Nothing
, FormatChar 'o' Nothing
])
(RightSide $ S.fromList
[ FormatChar 'H' Nothing
, FormatChar 'e' Nothing
, FormatChar 'r' Nothing
, FormatChar 'x' Nothing
, FormatChar 'y' Nothing
, FormatChar '!' Nothing
, FormatChar '@' Nothing
, FormatChar 'z' Nothing
, FormatChar 'o' Nothing
, FormatChar '1' Nothing
, FormatChar '2' Nothing
])
diff
( LeftSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'r' Nothing,
FormatChar 'l' Nothing,
FormatChar '~' Nothing,
FormatChar '!' Nothing,
FormatChar '@' Nothing,
FormatChar 'l' Nothing,
FormatChar 'o' Nothing
]
)
( RightSide $
S.fromList
[ FormatChar 'H' Nothing,
FormatChar 'e' Nothing,
FormatChar 'r' Nothing,
FormatChar 'x' Nothing,
FormatChar 'y' Nothing,
FormatChar '!' Nothing,
FormatChar '@' Nothing,
FormatChar 'z' Nothing,
FormatChar 'o' Nothing,
FormatChar '1' Nothing,
FormatChar '2' Nothing
]
)
`shouldBe` S.fromList
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'e' Nothing) Inserted
, DiffChar (FormatChar 'r' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'l' Nothing) Deleted
, DiffChar (FormatChar '~' Nothing) Deleted
, DiffChar (FormatChar 'x' Nothing) Inserted
, DiffChar (FormatChar 'y' Nothing) Inserted
, DiffChar (FormatChar '!' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar '@' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar 'l' Nothing) Deleted
, DiffChar (FormatChar 'z' Nothing) Inserted
, DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat
, DiffChar (FormatChar '1' Nothing) Inserted
, DiffChar (FormatChar '2' Nothing) Inserted
]
[ DiffChar (FormatChar 'H' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'e' Nothing) Inserted,
DiffChar (FormatChar 'r' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'l' Nothing) Deleted,
DiffChar (FormatChar '~' Nothing) Deleted,
DiffChar (FormatChar 'x' Nothing) Inserted,
DiffChar (FormatChar 'y' Nothing) Inserted,
DiffChar (FormatChar '!' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar '@' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar 'l' Nothing) Deleted,
DiffChar (FormatChar 'z' Nothing) Inserted,
DiffChar (FormatChar 'o' Nothing) $ UnchangedChar UnchangedFormat,
DiffChar (FormatChar '1' Nothing) Inserted,
DiffChar (FormatChar '2' Nothing) Inserted
]
it "SimplexLink 1" do
diff
(LeftSide $ S.fromList
[ FormatChar '>' $ Just $ SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]}
])
(RightSide $ S.fromList
[ FormatChar '>' $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/3/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host0", "host2", "host3"]
}
])
diff
( LeftSide $
S.fromList
[ FormatChar '>' $
Just $
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
]
)
( RightSide $
S.fromList
[ FormatChar '>' $
Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/3/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host0", "host2", "host3"]
}
]
)
`shouldBe` S.fromList
[ DiffChar
(FormatChar '>' $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]
}
) $
UnchangedChar $ ChangedToFormat $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/3/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host0", "host2", "host3"]
}
[ DiffChar
( FormatChar '>' $
Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
)
$ UnchangedChar
$ ChangedToFormat
$ Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/3/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host0", "host2", "host3"]
}
]
it "SimplexLink 2" do
diff
(LeftSide $ S.fromList
[ FormatChar '>' $ Just $ SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]}
])
(RightSide $ S.fromList
[ FormatChar '>' $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/3/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]
}
])
diff
( LeftSide $
S.fromList
[ FormatChar '>' $
Just $
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
]
)
( RightSide $
S.fromList
[ FormatChar '>' $
Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/3/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
]
)
`shouldBe` S.fromList
[ DiffChar
(FormatChar '>' $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]
}
) $
UnchangedChar $ ChangedToFormat $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/3/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]
}
[ DiffChar
( FormatChar '>' $
Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
)
$ UnchangedChar
$ ChangedToFormat
$ Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/3/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
]
it "SimplexLink 3" do
diff
(LeftSide $ S.fromList
[ FormatChar '>' $ Just $ SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]}
])
(RightSide $ S.fromList
[ FormatChar '>' $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host0", "host2", "host3"]
}
])
diff
( LeftSide $
S.fromList
[ FormatChar '>' $
Just $
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
]
)
( RightSide $
S.fromList
[ FormatChar '>' $
Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host0", "host2", "host3"]
}
]
)
`shouldBe` S.fromList
[ DiffChar
(FormatChar '>' $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host1", "host2", "host3"]
}
) $
UnchangedChar $ ChangedToFormat $ Just SimplexLink
{ linkType = XLContact
, simplexUri = "https://api.twitter.com/2/tweets/:id"
, trustedUri = True
, smpHosts = NE.fromList ["host0", "host2", "host3"]
}
[ DiffChar
( FormatChar '>' $
Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host1", "host2", "host3"]
}
)
$ UnchangedChar
$ ChangedToFormat
$ Just
SimplexLink
{ linkType = XLContact,
simplexUri = "https://api.twitter.com/2/tweets/:id",
trustedUri = True,
smpHosts = NE.fromList ["host0", "host2", "host3"]
}
]
it "plainDiff 1" do
plainDiff
(LeftSide "https://api.twitter.com/2/tweets/:id")
plainDiff
(LeftSide "https://api.twitter.com/2/tweets/:id")
(RightSide "https://api.twitter.com/3/tweets/:id")
`shouldBe` S.fromList
[ DiffPlainChar 'h' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 'p' UnchangedP
, DiffPlainChar 's' UnchangedP
, DiffPlainChar ':' UnchangedP
, DiffPlainChar '/' UnchangedP
, DiffPlainChar '/' UnchangedP
, DiffPlainChar 'a' UnchangedP
, DiffPlainChar 'p' UnchangedP
, DiffPlainChar 'i' UnchangedP
, DiffPlainChar '.' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 'w' UnchangedP
, DiffPlainChar 'i' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 'e' UnchangedP
, DiffPlainChar 'r' UnchangedP
, DiffPlainChar '.' UnchangedP
, DiffPlainChar 'c' UnchangedP
, DiffPlainChar 'o' UnchangedP
, DiffPlainChar 'm' UnchangedP
, DiffPlainChar '/' UnchangedP
, DiffPlainChar '2' DeletedP
, DiffPlainChar '3' InsertedP
, DiffPlainChar '/' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 'w' UnchangedP
, DiffPlainChar 'e' UnchangedP
, DiffPlainChar 'e' UnchangedP
, DiffPlainChar 't' UnchangedP
, DiffPlainChar 's' UnchangedP
, DiffPlainChar '/' UnchangedP
, DiffPlainChar ':' UnchangedP
, DiffPlainChar 'i' UnchangedP
, DiffPlainChar 'd' UnchangedP
]
`shouldBe` S.fromList
[ DiffPlainChar 'h' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 'p' UnchangedP,
DiffPlainChar 's' UnchangedP,
DiffPlainChar ':' UnchangedP,
DiffPlainChar '/' UnchangedP,
DiffPlainChar '/' UnchangedP,
DiffPlainChar 'a' UnchangedP,
DiffPlainChar 'p' UnchangedP,
DiffPlainChar 'i' UnchangedP,
DiffPlainChar '.' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 'w' UnchangedP,
DiffPlainChar 'i' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 'e' UnchangedP,
DiffPlainChar 'r' UnchangedP,
DiffPlainChar '.' UnchangedP,
DiffPlainChar 'c' UnchangedP,
DiffPlainChar 'o' UnchangedP,
DiffPlainChar 'm' UnchangedP,
DiffPlainChar '/' UnchangedP,
DiffPlainChar '2' DeletedP,
DiffPlainChar '3' InsertedP,
DiffPlainChar '/' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 'w' UnchangedP,
DiffPlainChar 'e' UnchangedP,
DiffPlainChar 'e' UnchangedP,
DiffPlainChar 't' UnchangedP,
DiffPlainChar 's' UnchangedP,
DiffPlainChar '/' UnchangedP,
DiffPlainChar ':' UnchangedP,
DiffPlainChar 'i' UnchangedP,
DiffPlainChar 'd' UnchangedP
]
it "plainDiff 2" do
plainDiff
(LeftSide "Hrl~!@lo")
plainDiff
(LeftSide "Hrl~!@lo")
(RightSide "Herxy!@zo12")
`shouldBe` S.fromList
[ DiffPlainChar 'H' UnchangedP
, DiffPlainChar 'e' InsertedP
, DiffPlainChar 'r' UnchangedP
, DiffPlainChar 'l' DeletedP
, DiffPlainChar '~' DeletedP
, DiffPlainChar 'x' InsertedP
, DiffPlainChar 'y' InsertedP
, DiffPlainChar '!' UnchangedP
, DiffPlainChar '@' UnchangedP
, DiffPlainChar 'l' DeletedP
, DiffPlainChar 'z' InsertedP
, DiffPlainChar 'o' UnchangedP
, DiffPlainChar '1' InsertedP
, DiffPlainChar '2' InsertedP
]
`shouldBe` S.fromList
[ DiffPlainChar 'H' UnchangedP,
DiffPlainChar 'e' InsertedP,
DiffPlainChar 'r' UnchangedP,
DiffPlainChar 'l' DeletedP,
DiffPlainChar '~' DeletedP,
DiffPlainChar 'x' InsertedP,
DiffPlainChar 'y' InsertedP,
DiffPlainChar '!' UnchangedP,
DiffPlainChar '@' UnchangedP,
DiffPlainChar 'l' DeletedP,
DiffPlainChar 'z' InsertedP,
DiffPlainChar 'o' UnchangedP,
DiffPlainChar '1' InsertedP,
DiffPlainChar '2' InsertedP
]