From 4d88340381598c588a5bd06659c7321ec42dd38c Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Fri, 19 Jan 2024 02:03:32 +0100 Subject: [PATCH] Clean the entire src/ directory. --- {src => drop}/Parsing.hs | 0 drop/README.md | 3 + makefile | 3 + src/Main.purs | 126 --------------------------------------- test/Main.purs | 123 ++++++++++++++++++++++++++++++++++++-- 5 files changed, 125 insertions(+), 130 deletions(-) rename {src => drop}/Parsing.hs (100%) create mode 100644 drop/README.md delete mode 100644 src/Main.purs diff --git a/src/Parsing.hs b/drop/Parsing.hs similarity index 100% rename from src/Parsing.hs rename to drop/Parsing.hs diff --git a/drop/README.md b/drop/README.md new file mode 100644 index 0000000..e76357b --- /dev/null +++ b/drop/README.md @@ -0,0 +1,3 @@ +# The purpose of this directory + +This directory contains an Haskell library used as a source of inspiration for the Purescript library. diff --git a/makefile b/makefile index 9a94ee3..da5de78 100644 --- a/makefile +++ b/makefile @@ -5,3 +5,6 @@ build: run: spago run + +test: + spago test diff --git a/src/Main.purs b/src/Main.purs deleted file mode 100644 index 6c86625..0000000 --- a/src/Main.purs +++ /dev/null @@ -1,126 +0,0 @@ -module Main where - -import GenericParser.Parser (Parser(..)) -import GenericParser.DomainParser (domain, label, ldh_str, sub_eof, subdomain, DomainError(..)) - -import Prelude (Unit, discard, show, ($), (<>)) -import Data.Either (Either(..)) -import Data.Maybe (Maybe(..)) -import Data.String.CodeUnits (fromCharArray) -import Effect.Console (log) -import Effect (Effect) - -logtest :: forall e v. String -> Parser e v -> String -> (v -> String) -> (e -> String) -> Effect Unit -logtest fname (Parser p) str r e = do - log $ "(" <> fname <> ") parsing '" <> str <> "': " - <> case p { string: str, position: 0 } of - Left { position, error } -> "failed at position " <> show position <> case error of - Nothing -> " -> no error reported" - Just err -> " -> error: " <> e err - Right { suffix, result } -> show (r result) <> " '" <> suffix.string <> "'" - -id :: forall a. a -> a -id a = a - -showerror :: DomainError -> String -showerror (SubdomainTooLarge size) = "SubdomainTooLarge (size: " <> show size <> ")" -showerror (DomainTooLarge size) = "DomainTooLarge (size: " <> show size <> ")" -showerror (InvalidCharacter) = "InvalidCharacter" -showerror (EOFExpected) = "EOFExpected" - -main :: Effect Unit -main = do - logtest "ldh_str" ldh_str "a12B.fl" fromCharArray showerror - logtest "ldh_str" ldh_str "1efg.x1" fromCharArray showerror - logtest "ldh_str" ldh_str ".qjzleb" fromCharArray showerror - logtest "ldh_str" ldh_str "a-b.b-a" fromCharArray showerror - logtest "ldh_str" ldh_str "" fromCharArray showerror - - log "" - - logtest "label" label "example.org" id showerror - logtest "label" label "" id showerror - logtest "label" label "a.x" id showerror - logtest "label" label "a2.org" id showerror - logtest "label" label "a33.org" id showerror - logtest "label" label "a444.org" id showerror - logtest "label" label "a5555.org" id showerror - logtest "label" label "a66666.org" id showerror - logtest "label" label "a777777.org" id showerror - logtest "label" label "a8888888.org" id showerror - log "" - logtest "label" label "-" id showerror - logtest "label" label "a-" id showerror - - log "" - - logtest "subdomain" subdomain "example.org" id showerror - logtest "subdomain" subdomain "" id showerror - logtest "subdomain" subdomain "a.x" id showerror - logtest "subdomain" subdomain "a2.org" id showerror - logtest "subdomain" subdomain "a33.org" id showerror - logtest "subdomain" subdomain "a444.org" id showerror - logtest "subdomain" subdomain "a5555.org" id showerror - logtest "subdomain" subdomain "a66666.org" id showerror - logtest "subdomain" subdomain "a777777.org" id showerror - logtest "subdomain" subdomain "a8888888.org" id showerror - logtest "subdomain" subdomain "xblah.a.x" id showerror - logtest "subdomain" subdomain "xblah.a2.org" id showerror - logtest "subdomain" subdomain "xblah.a33.org" id showerror - logtest "subdomain" subdomain "xblah.a444.org" id showerror - logtest "subdomain" subdomain "xblah.a5555.org" id showerror - logtest "subdomain" subdomain "xblah.a66666.org" id showerror - logtest "subdomain" subdomain "xblah.a777777.org" id showerror - logtest "subdomain" subdomain "xblah.a8888888.org" id showerror - logtest "subdomain" subdomain "-" id showerror - logtest "subdomain" subdomain "a-" id showerror - - log "" - - logtest "sub_eof" sub_eof " " id showerror - logtest "sub_eof" sub_eof " " id showerror - logtest "sub_eof" sub_eof "example.org" id showerror - logtest "sub_eof" sub_eof "" id showerror - logtest "sub_eof" sub_eof "a.x" id showerror - logtest "sub_eof" sub_eof "a2.org" id showerror - logtest "sub_eof" sub_eof "a33.org" id showerror - logtest "sub_eof" sub_eof "a444.org" id showerror - logtest "sub_eof" sub_eof "a5555.org" id showerror - logtest "sub_eof" sub_eof "a66666.org" id showerror - logtest "sub_eof" sub_eof "a777777.org" id showerror - logtest "sub_eof" sub_eof "a8888888.org" id showerror - logtest "sub_eof" sub_eof "xblah.a.x" id showerror - logtest "sub_eof" sub_eof "xblah.a2.org" id showerror - logtest "sub_eof" sub_eof "xblah.a33.org" id showerror - logtest "sub_eof" sub_eof "xblah.a444.org" id showerror - logtest "sub_eof" sub_eof "xblah.a5555.org" id showerror - logtest "sub_eof" sub_eof "xblah.a66666.org" id showerror - logtest "sub_eof" sub_eof "xblah.a777777.org" id showerror - logtest "sub_eof" sub_eof "xblah.a8888888.org" id showerror - logtest "sub_eof" sub_eof "-" id showerror - logtest "sub_eof" sub_eof "a-" id showerror - - log "" - - logtest "domain" domain " " id showerror - logtest "domain" domain " " id showerror - logtest "domain" domain "example.org" id showerror - logtest "domain" domain "" id showerror - logtest "domain" domain "a.x" id showerror - logtest "domain" domain "a2.org" id showerror - logtest "domain" domain "a33.org" id showerror - logtest "domain" domain "a444.org" id showerror - logtest "domain" domain "a5555.org" id showerror - logtest "domain" domain "a66666.org" id showerror - logtest "domain" domain "a777777.org" id showerror - logtest "domain" domain "a8888888.org" id showerror - logtest "domain" domain "xblah.a.x" id showerror - logtest "domain" domain "xblah.a2.org" id showerror - logtest "domain" domain "xblah.a33.org" id showerror - logtest "domain" domain "xblah.a444.org" id showerror - logtest "domain" domain "xblah.a5555.org" id showerror - logtest "domain" domain "xblah.a66666.org" id showerror - logtest "domain" domain "xblah.a777777.org" id showerror - logtest "domain" domain "xblah.a8888888.org" id showerror - logtest "domain" domain "-" id showerror - logtest "domain" domain "a-" id showerror diff --git a/test/Main.purs b/test/Main.purs index f91f98c..65a7938 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -1,11 +1,126 @@ module Test.Main where -import Prelude +import GenericParser.Parser (Parser(..)) +import GenericParser.DomainParser (domain, label, ldh_str, sub_eof, subdomain, DomainError(..)) +import Prelude (Unit, discard, show, ($), (<>)) +import Data.Either (Either(..)) +import Data.Maybe (Maybe(..)) +import Data.String.CodeUnits (fromCharArray) +import Effect.Console (log) import Effect (Effect) -import Effect.Class.Console (log) + +logtest :: forall e v. String -> Parser e v -> String -> (v -> String) -> (e -> String) -> Effect Unit +logtest fname (Parser p) str r e = do + log $ "(" <> fname <> ") parsing '" <> str <> "': " + <> case p { string: str, position: 0 } of + Left { position, error } -> "failed at position " <> show position <> case error of + Nothing -> " -> no error reported" + Just err -> " -> error: " <> e err + Right { suffix, result } -> show (r result) <> " '" <> suffix.string <> "'" + +id :: forall a. a -> a +id a = a + +showerror :: DomainError -> String +showerror (SubdomainTooLarge size) = "SubdomainTooLarge (size: " <> show size <> ")" +showerror (DomainTooLarge size) = "DomainTooLarge (size: " <> show size <> ")" +showerror (InvalidCharacter) = "InvalidCharacter" +showerror (EOFExpected) = "EOFExpected" main :: Effect Unit main = do - log "🍝" - log "You should add some tests." + logtest "ldh_str" ldh_str "a12B.fl" fromCharArray showerror + logtest "ldh_str" ldh_str "1efg.x1" fromCharArray showerror + logtest "ldh_str" ldh_str ".qjzleb" fromCharArray showerror + logtest "ldh_str" ldh_str "a-b.b-a" fromCharArray showerror + logtest "ldh_str" ldh_str "" fromCharArray showerror + + log "" + + logtest "label" label "example.org" id showerror + logtest "label" label "" id showerror + logtest "label" label "a.x" id showerror + logtest "label" label "a2.org" id showerror + logtest "label" label "a33.org" id showerror + logtest "label" label "a444.org" id showerror + logtest "label" label "a5555.org" id showerror + logtest "label" label "a66666.org" id showerror + logtest "label" label "a777777.org" id showerror + logtest "label" label "a8888888.org" id showerror + log "" + logtest "label" label "-" id showerror + logtest "label" label "a-" id showerror + + log "" + + logtest "subdomain" subdomain "example.org" id showerror + logtest "subdomain" subdomain "" id showerror + logtest "subdomain" subdomain "a.x" id showerror + logtest "subdomain" subdomain "a2.org" id showerror + logtest "subdomain" subdomain "a33.org" id showerror + logtest "subdomain" subdomain "a444.org" id showerror + logtest "subdomain" subdomain "a5555.org" id showerror + logtest "subdomain" subdomain "a66666.org" id showerror + logtest "subdomain" subdomain "a777777.org" id showerror + logtest "subdomain" subdomain "a8888888.org" id showerror + logtest "subdomain" subdomain "xblah.a.x" id showerror + logtest "subdomain" subdomain "xblah.a2.org" id showerror + logtest "subdomain" subdomain "xblah.a33.org" id showerror + logtest "subdomain" subdomain "xblah.a444.org" id showerror + logtest "subdomain" subdomain "xblah.a5555.org" id showerror + logtest "subdomain" subdomain "xblah.a66666.org" id showerror + logtest "subdomain" subdomain "xblah.a777777.org" id showerror + logtest "subdomain" subdomain "xblah.a8888888.org" id showerror + logtest "subdomain" subdomain "-" id showerror + logtest "subdomain" subdomain "a-" id showerror + + log "" + + logtest "sub_eof" sub_eof " " id showerror + logtest "sub_eof" sub_eof " " id showerror + logtest "sub_eof" sub_eof "example.org" id showerror + logtest "sub_eof" sub_eof "" id showerror + logtest "sub_eof" sub_eof "a.x" id showerror + logtest "sub_eof" sub_eof "a2.org" id showerror + logtest "sub_eof" sub_eof "a33.org" id showerror + logtest "sub_eof" sub_eof "a444.org" id showerror + logtest "sub_eof" sub_eof "a5555.org" id showerror + logtest "sub_eof" sub_eof "a66666.org" id showerror + logtest "sub_eof" sub_eof "a777777.org" id showerror + logtest "sub_eof" sub_eof "a8888888.org" id showerror + logtest "sub_eof" sub_eof "xblah.a.x" id showerror + logtest "sub_eof" sub_eof "xblah.a2.org" id showerror + logtest "sub_eof" sub_eof "xblah.a33.org" id showerror + logtest "sub_eof" sub_eof "xblah.a444.org" id showerror + logtest "sub_eof" sub_eof "xblah.a5555.org" id showerror + logtest "sub_eof" sub_eof "xblah.a66666.org" id showerror + logtest "sub_eof" sub_eof "xblah.a777777.org" id showerror + logtest "sub_eof" sub_eof "xblah.a8888888.org" id showerror + logtest "sub_eof" sub_eof "-" id showerror + logtest "sub_eof" sub_eof "a-" id showerror + + log "" + + logtest "domain" domain " " id showerror + logtest "domain" domain " " id showerror + logtest "domain" domain "example.org" id showerror + logtest "domain" domain "" id showerror + logtest "domain" domain "a.x" id showerror + logtest "domain" domain "a2.org" id showerror + logtest "domain" domain "a33.org" id showerror + logtest "domain" domain "a444.org" id showerror + logtest "domain" domain "a5555.org" id showerror + logtest "domain" domain "a66666.org" id showerror + logtest "domain" domain "a777777.org" id showerror + logtest "domain" domain "a8888888.org" id showerror + logtest "domain" domain "xblah.a.x" id showerror + logtest "domain" domain "xblah.a2.org" id showerror + logtest "domain" domain "xblah.a33.org" id showerror + logtest "domain" domain "xblah.a444.org" id showerror + logtest "domain" domain "xblah.a5555.org" id showerror + logtest "domain" domain "xblah.a66666.org" id showerror + logtest "domain" domain "xblah.a777777.org" id showerror + logtest "domain" domain "xblah.a8888888.org" id showerror + logtest "domain" domain "-" id showerror + logtest "domain" domain "a-" id showerror