[fix] update errs

This commit is contained in:
Andy Bunce 2026-03-09 22:27:33 +00:00
parent d3a89a5b08
commit d38467183c
5 changed files with 77 additions and 50 deletions

View file

@ -1,10 +0,0 @@
import module namespace doci = 'urn:doci' at "../src/doci.xqm";
declare variable $long:=
file:read-text("C:\Users\mrwhe\git\quodatum\basex-lsp\test\sample.docs\pdfbox.xqm");
declare variable $text:=`ABV
ddddd
`;
doci:build($long)?length

View file

@ -2,11 +2,12 @@
module namespace test = 'test:doci';
import module namespace doci = 'urn:doci' at "../src/doci.xqm";
(:~ we can create record from file :)
declare %unit:test function test:from-file() {
let $doc:=test:read("resources/doc1.txt")
let $doci:= doci:build($doc)
return test:expected($doc,$doci,530)
return test:expected($doci,$doc,530)
};
@ -14,7 +15,7 @@ declare %unit:test function test:from-file() {
declare %unit:test function test:from-string1() {
let $doc:="a one line string"
let $doci:= doci:build($doc)
return test:expected($doc,$doci,1)
return test:expected($doci, $doc, 1)
};
(:~ we can create record from string :)
@ -22,39 +23,43 @@ declare %unit:test function test:from-string2() {
let $doc:="a two line string
second line"
let $doci:= doci:build($doc)
return test:expected($doc,$doci,2)
return test:expected($doci,$doc,2)
};
(:~ we can create update from string :)
declare %unit:test function test:update1() {
declare %unit:test function test:update-start() {
let $doc:="123456789"
let $doci:= doci:build($doc)
let $change:=test:change("*",0,0,0,0)
let $doci2:=doci:change($doci,$change)=>trace("A")
let $_:= test:expected($doci,$doc,1)
let $change:=test:def-change("*",0,0,0,0)
let $doci2:=doci:update($doci,$change)=>trace("US1")
let $_:= test:expected($doci2,"*" || $doc,1)
let $change2:=test:change("",0,0,0,1)
let $update:=doci:change($doci2,$change2)=>trace("b")
let $change2:=test:def-change("",0,0,0,1)
let $update:=doci:update($doci2,$change2)=>trace("b")
let $_:= doci:text($update)=>trace("test:update1")
return ()
};
(:~ we can create update from string :)
declare %unit:test function test:update2() {
declare %unit:test function test:update-end() {
let $doc:="a
123456789
b"
let $doci:= doci:build($doc)
let $_:=test:expected($doc,$doci,3)
let $change:=test:change("*",1,9,1,9)
let $doci2:=doci:change($doci,$change)=>trace("A")
let $_:=test:expected($doci,$doc,3)
let $change:=test:def-change("*",1,9,1,9)
let $doci2:=doci:update($doci,$change)
let $change2:=test:change("",1,9,1,10)
let $update:=doci:change($doci2,$change2)=>trace("b")
return ()
let $change2:=test:def-change("",1,9,1,10)
let $update:=doci:update($doci2,$change2)
return unit:assert-equals($doc,doci:text($update))
};
(: test $doci properties as expected :)
declare function test:expected($doc as xs:string, $doci as doci:doci, $lines as xs:integer){
unit:assert-equals($doci?lines=>count(),$lines),
declare function test:expected($doci as doci:doci, $doc as xs:string, $lines as xs:integer){
unit:assert-equals(doci:lines($doci),$lines),
unit:assert($doci?separator!string-length(.)>0),
unit:assert-equals($doc,doci:text($doci))
};
@ -72,7 +77,7 @@ file:resolve-path($path,file:base-dir())=>file:read-text()
};
(: create a change description:)
declare function test:change($text as xs:string,
declare function test:def-change($text as xs:string,
$sline as xs:integer,$schar as xs:integer,
$eline as xs:integer,$echar as xs:integer
)

22
test/smoke.xq Normal file
View file

@ -0,0 +1,22 @@
import module namespace doci = 'urn:doci' at "../src/doci.xqm";
declare variable $long:=
file:read-text("C:\Users\mrwhe\git\quodatum\basex-lsp\test\sample.docs\pdfbox.xqm");
declare variable $text:="123456789";
(: create a change description:)
declare function local:change($text as xs:string,
$sline as xs:integer,$schar as xs:integer,
$eline as xs:integer,$echar as xs:integer
)
as doci:TextDocumentContentChangeEvent{
doci:TextDocumentContentChangeEvent(
$text,
doci:Range(doci:Position($sline,$schar),doci:Position($eline,$echar))
)
};
doci:build($text)
=>doci:change(local:change("*",0,0,0,0))