modern: Fix compound syntax unit tests.

modern-harvey2
Doug Coleman 2017-09-24 22:22:40 -05:00
parent 516a6909ac
commit 8e4fe207f1
2 changed files with 49 additions and 57 deletions

View File

@ -62,6 +62,7 @@ ARITY: \SLOT: 1
ARITY: \SYMBOL: 1
ARITY: \UNUSE: 1
ARITY: \USE: 1
! ARITY: \USING: 0
: get-arity ( string -- n/f )
arities get at ;

View File

@ -5,121 +5,111 @@ IN: modern.tests
! Comment
{
{
{ { "!" "" } }
}
{ { "!" "" } }
} [ "!" string>literals >strings ] unit-test
{
{
{ { "!" " lol" } }
}
{ { "!" " lol" } }
} [ "! lol" string>literals >strings ] unit-test
{
{ { "lol!" } }
{ "lol!" }
} [ "lol!" string>literals >strings ] unit-test
{
{ { { "!" "lol" } } }
{ { "!" "lol" } }
} [ "!lol" string>literals >strings ] unit-test
! Colon
{
{ { ":asdf:" } }
{ ":asdf:" }
} [ ":asdf:" string>literals >strings ] unit-test
{
{ { { "one:" "1" } } }
{ { "one:" "1" } }
} [ "one: 1" string>literals >strings ] unit-test
{
{ { "1" } { ":>" } { "one" } }
{ "1" ":>" "one" }
} [ "1 :> one" string>literals >strings ] unit-test
{
{ { { ":" { "foo" } ";" } } }
{ { ":" { "foo" } ";" } }
} [ ": foo ;" string>literals >strings ] unit-test
{
{
{ { "FOO:" { "a" } } }
{ { "BAR:" { "b" } } }
{ "FOO:" { "a" } }
{ "BAR:" { "b" } }
}
} [ "FOO: a BAR: b" string>literals >strings ] unit-test
{
{
{ { "FOO:" { "a" } ";" } }
}
{ { "FOO:" { "a" } ";" } }
} [ "FOO: a ;" string>literals >strings ] unit-test
{
{
{ { "FOO:" { "a" } "FOO;" } }
}
{ { "FOO:" { "a" } "FOO;" } }
} [ "FOO: a FOO;" string>literals >strings ] unit-test
! Acute
{
{ { { "<A" { } "A>" } } }
{ { "<A" { } "A>" } }
} [ "<A A>" string>literals >strings ] unit-test
{
{ { { "<B:" { "hi" } ";B>" } } }
{ { "<B:" { "hi" } ";B>" } }
} [ "<B: hi ;B>" string>literals >strings ] unit-test
{ { { "<foo>" } } } [ "<foo>" string>literals >strings ] unit-test
{ { { ">foo<" } } } [ ">foo<" string>literals >strings ] unit-test
{ { "<foo>" } } [ "<foo>" string>literals >strings ] unit-test
{ { ">foo<" } } [ ">foo<" string>literals >strings ] unit-test
{ { { "foo>" } } } [ "foo>" string>literals >strings ] unit-test
{ { { ">foo" } } } [ ">foo" string>literals >strings ] unit-test
{ { { ">foo>" } } } [ ">foo>" string>literals >strings ] unit-test
{ { { ">>foo>" } } } [ ">>foo>" string>literals >strings ] unit-test
{ { { ">>foo>>" } } } [ ">>foo>>" string>literals >strings ] unit-test
{ { "foo>" } } [ "foo>" string>literals >strings ] unit-test
{ { ">foo" } } [ ">foo" string>literals >strings ] unit-test
{ { ">foo>" } } [ ">foo>" string>literals >strings ] unit-test
{ { ">>foo>" } } [ ">>foo>" string>literals >strings ] unit-test
{ { ">>foo>>" } } [ ">>foo>>" string>literals >strings ] unit-test
{ { { "foo<" } } } [ "foo<" string>literals >strings ] unit-test
{ { { "<foo" } } } [ "<foo" string>literals >strings ] unit-test
{ { { "<foo<" } } } [ "<foo<" string>literals >strings ] unit-test
{ { { "<<foo<" } } } [ "<<foo<" string>literals >strings ] unit-test
{ { { "<<foo<<" } } } [ "<<foo<<" string>literals >strings ] unit-test
{ { "foo<" } } [ "foo<" string>literals >strings ] unit-test
{ { "<foo" } } [ "<foo" string>literals >strings ] unit-test
{ { "<foo<" } } [ "<foo<" string>literals >strings ] unit-test
{ { "<<foo<" } } [ "<<foo<" string>literals >strings ] unit-test
{ { "<<foo<<" } } [ "<<foo<<" string>literals >strings ] unit-test
! Backslash \AVL{ foo\bar foo\bar{
{
{ { { "SYNTAX:" { "\\AVL{" } } } }
{ { "SYNTAX:" { "\\AVL{" } } }
} [ "SYNTAX: \\AVL{" string>literals >strings ] unit-test
[ "\\" string>literals >strings ] must-fail ! \ alone should be legal eventually (?)
{ { { "\\FOO" } } } [ "\\FOO" string>literals >strings ] unit-test
{ { "\\FOO" } } [ "\\FOO" string>literals >strings ] unit-test
{
{ { "foo\\bar" } }
{ "foo\\bar" }
} [ "foo\\bar" string>literals >strings ] unit-test
[ "foo\\bar{" string>literals >strings ] must-fail
{
{ { { "foo\\bar{" { "1" } "}" } } }
{ { "foo\\bar{" { "1" } "}" } }
} [ "foo\\bar{ 1 }" string>literals >strings ] unit-test
{ { { { "char:" "\\{" } } } } [ "char: \\{" string>literals >strings ] unit-test
{ { { "char:" "\\{" } } } [ "char: \\{" string>literals >strings ] unit-test
[ "char: {" string>literals >strings ] must-fail
[ "char: [" string>literals >strings ] must-fail
[ "char: {" string>literals >strings ] must-fail
[ "char: \"" string>literals >strings ] must-fail
{ { { { "char:" "\\\\" } } } } [ "char: \\\\" string>literals >strings ] unit-test
{ { { "char:" "\\\\" } } } [ "char: \\\\" string>literals >strings ] unit-test
[ "char: \\" string>literals >strings ] must-fail ! char: \ should be legal eventually
! \ backslash going away someday
{ { { "\\" "(" } } } [ "\\ (" string>literals >strings ] unit-test
{ { { { "\\" "(" } } } } [ "\\ (" string>literals >strings ] unit-test
{ { { "\\[[" } } } [ "\\[[" string>literals >strings ] unit-test
{ { { "\\[=[" } } } [ "\\[=[" string>literals >strings ] unit-test
{ { { "\\[==[" } } } [ "\\[==[" string>literals >strings ] unit-test
{ { "\\[[" } } [ "\\[[" string>literals >strings ] unit-test
{ { "\\[=[" } } [ "\\[=[" string>literals >strings ] unit-test
{ { "\\[==[" } } [ "\\[==[" string>literals >strings ] unit-test
{ t } [ "FOO:" strict-upper? ] unit-test
@ -138,13 +128,22 @@ IN: modern.tests
! Strings
{
{ { { "url\"" "google.com" "\"" } } }
{ { "url\"" "google.com" "\"" } }
} [ [[ url"google.com" ]] string>literals >strings ] unit-test
{
{ { { "\"" "google.com" "\"" } } }
{ { "\"" "google.com" "\"" } }
} [ [[ "google.com" ]] string>literals >strings ] unit-test
{
{
{ "(" { "a" "b" } ")" }
{ "[" { "a" "b" "+" } "]" }
{ "(" { "c" } ")" }
}
} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test
![[
! Concatenated syntax
{
{
@ -156,15 +155,6 @@ IN: modern.tests
}
} [ "( a b )[ a b + ]( c )" string>literals >strings ] unit-test
{
{
{ { "(" { "a" "b" } ")" } }
{ { "[" { "a" "b" "+" } "]" } }
{ { "(" { "c" } ")" } }
}
} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test
{
{
{
@ -173,3 +163,4 @@ IN: modern.tests
}
}
} [ "\"abc\"[ 0 ]" string>literals >strings ] unit-test
]]