factor/basis/documents/documents-tests.factor

153 lines
3.4 KiB
Factor

USING: documents documents.private accessors sequences
namespaces tools.test make arrays kernel fry ;
! Tests
{ { } } [
[
{ 1 10 }
{ 1 10 } [ , "HI" , ] each-line
] { } make
] unit-test
{ { 1 "HI" } } [
[
{ 1 10 }
{ 1 11 } [ , "HI" , ] each-line
] { } make
] unit-test
{ { 1 "HI" 2 "HI" } } [
[
{ 1 10 }
{ 2 11 } [ , "HI" , ] each-line
] { } make
] unit-test
{ { { t f 1 } { t f 2 } } } [
[
{ 1 10 } { 2 11 }
t f
'[ [ _ _ ] dip 3array , ] each-line
] { } make
] unit-test
{ { 10 4 } } [ { "a" } { 10 3 } text+loc ] unit-test
{ { 10 4 } } [ { "a" } { 10 3 } text+loc ] unit-test
{ { 2 9 } } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
{ 10 0 } "doc" get validate-loc
] unit-test
{ { 1 12 } } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
{ 1 20 } "doc" get validate-loc
] unit-test
{ " world,\nhow are you?\nMore" } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
{ 0 5 } { 2 4 } "doc" get doc-range
] unit-test
{ "Hello world,\nhow you?\nMore text" } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
{ 1 3 } { 1 7 } "doc" get remove-doc-range
"doc" get doc-string
] unit-test
{ "Hello world,\nhow text" } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
{ 1 3 } { 2 4 } "doc" get remove-doc-range
"doc" get doc-string
] unit-test
{ "Hello world,\nhow you?\nMore text" } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
"" { 1 3 } { 1 7 } "doc" get set-doc-range
"doc" get doc-string
] unit-test
{ "Hello world,\nhow text" } [
<document> "doc" set
"Hello world,\nhow are you?\nMore text"
"doc" get set-doc-string
"" { 1 3 } { 2 4 } "doc" get set-doc-range
"doc" get doc-string
] unit-test
<document> "doc" set
"Hello\nworld, how are\nyou?" "doc" get set-doc-string
{ { 2 4 } } [ "doc" get doc-end ] unit-test
! Undo/redo
{ } [ <document> "d" set ] unit-test
{ } [ "Hello, world." "d" get set-doc-string ] unit-test
{
T{ edit
{ old-string "" }
{ new-string "Hello, world." }
{ from { 0 0 } }
{ old-to { 0 0 } }
{ new-to { 0 13 } }
}
} [ "d" get undos>> first ] unit-test
{ } [ "Goodbye" { 0 0 } { 0 5 } "d" get set-doc-range ] unit-test
{ "Goodbye, world." } [ "d" get doc-string ] unit-test
{ } [ "cruel " { 0 9 } { 0 9 } "d" get set-doc-range ] unit-test
{ 3 } [ "d" get undos>> length ] unit-test
{ "Goodbye, cruel world." } [ "d" get doc-string ] unit-test
{ "" { 0 9 } { 0 15 } } [
"d" get undos>> last
[ old-string>> ] [ from>> ] [ new-to>> ] tri
] unit-test
{ } [ "d" get undo ] unit-test
{ "Goodbye, world." } [ "d" get doc-string ] unit-test
{ } [ "d" get undo ] unit-test
{ "Hello, world." } [ "d" get doc-string ] unit-test
{ } [ "d" get redo ] unit-test
{ "Goodbye, world." } [ "d" get doc-string ] unit-test
{ } [ <document> "d" set ] unit-test
{ } [ "d" get clear-doc ] unit-test
{ } [ "d" get clear-doc ] unit-test
{ 0 } [ "d" get undos>> length ] unit-test
{ } [ <document> "d" set ] unit-test
{ } [ "d" get value>> "value" set ] unit-test
{ } [ "Hello world" "d" get set-doc-string ] unit-test
{ { "" } } [ "value" get ] unit-test