Skip to content
Snippets Groups Projects
Commit 5b92c4e6 authored by uwe's avatar uwe
Browse files

started unittesting and added unittesting module

parent bb074e88
No related branches found
No related tags found
No related merge requests found
xquery version "3.0";
(:~
: UNIT TESTING Module ("test", "http://bdn.edition.de/intermediate_format/unit_testing")
: *******************************************************************************************
: This module defines functions to test different functions from the Intermediate Format conversion
:
: It includes the main module "ident"
:
: @version 1.0 (2018-02-05)
: @status development
: @author Uwe Sikora
:)
module namespace test="http://bdn.edition.de/intermediate_format/unit_testing";
import module namespace ident = "http://bdn.edition.de/intermediate_format/identification" at "../../../modules/intermediate_format/identification.xqm";
(:############################# Modules Functions #############################:)
(:~
: test:branch-axis()
: This function evaluates the left- and right-branch AXIS
:
: @param $node the nodes to evaluate the left- and right-branch AXIS for
: @return evaluation-report as item()
:
: @version 1.0 (2018-02-05)
: @status development (working)
: @author Uwe Sikora
:)
declare function test:branch-axis
( $node as node() ) as item() {
let $left-axis := ident:left-branch-axis($node)
let $right-axis := ident:right-branch-axis($node)
return
element {"axisTest"}{
element {"targetNode"}{$node},
element {"axis"}{
element {"leftAxis"}{
attribute {"names"}{$left-axis/name()},
for $item at $nr in $left-axis
return
element {"item"}{
attribute {"n"}{$nr},
attribute {"gid"}{generate-id($item)},
$item
}
},
element {"rightAxis"}{
attribute {"names"}{$right-axis/name()},
for $item at $nr in $right-axis
return
element {"item"}{
attribute {"n"}{$nr},
attribute {"gid"}{generate-id($item)},
$item
}
}
}
}
};
(:~
: test:reading-evaluation()
: This function evaluates tei:lem and tei:app elements. It identifies the save first
: and last node and collects readingMarkers
:
: @param $reading the reading to be tested
: @return evaluation-report as item()
:
: @version 1.0 (2018-02-05)
: @status development (working)
: @author Uwe Sikora
:)
declare function test:reading-evaluation
( $readings as node()* ) as item()* {
for $reading at $nr in $readings
let $first-save-node := ident:first-save-node($reading)
let $last-save-node := ident:last-save-node($reading)
return
element {$reading/name()}{
$reading/@*,
attribute {"index"} { $nr },
element {"self"}{
attribute {"gid"}{ generate-id($reading) },
$reading
},
element {"target"}{
attribute {"type"}{ "open" },
attribute {"gid"}{ generate-id($first-save-node) },
$first-save-node
},
element {"target"}{
attribute {"type"}{ "close" },
attribute {"gid"}{ generate-id($last-save-node) },
$last-save-node
}
}
};
\ No newline at end of file
...@@ -7,7 +7,7 @@ import module namespace functx = "http://www.functx.com" at "functx.xqm"; ...@@ -7,7 +7,7 @@ import module namespace functx = "http://www.functx.com" at "functx.xqm";
import module namespace markerset = "http://bdn.edition.de/intermediate_format/markerset" at "../modules/intermediate_format/markerset.xqm"; import module namespace markerset = "http://bdn.edition.de/intermediate_format/markerset" at "../modules/intermediate_format/markerset.xqm";
import module namespace pre = "http://bdn.edition.de/intermediate_format/preprocessing" at "../modules/intermediate_format/preprocessing.xqm"; import module namespace pre = "http://bdn.edition.de/intermediate_format/preprocessing" at "../modules/intermediate_format/preprocessing.xqm";
import module namespace ident = "http://bdn.edition.de/intermediate_format/identification" at "../modules/intermediate_format/identification.xqm"; import module namespace ident = "http://bdn.edition.de/intermediate_format/identification" at "../modules/intermediate_format/identification.xqm";
import module namespace test = "http://bdn.edition.de/intermediate_format/unit_testing" at "devel/modules/unittesting.xqm";
(:declare namespace target = "http://www.interform.com/target_index"; (:declare namespace target = "http://www.interform.com/target_index";
import module "http://www.interform.com/target_index" at "targetindex.xqm"; import module "http://www.interform.com/target_index" at "targetindex.xqm";
:) :)
...@@ -17,18 +17,6 @@ declare namespace tei = "http://www.tei-c.org/ns/1.0"; ...@@ -17,18 +17,6 @@ declare namespace tei = "http://www.tei-c.org/ns/1.0";
(:declare option saxon:output "indent=no";:) (:declare option saxon:output "indent=no";:)
declare variable $apparatus := ('app');
declare variable $apparatus-childs := ('lem', 'rdg');
declare variable $blocklevel-elements := ('titlePage', 'titlePart', 'aligned', 'div', 'list', 'item', 'table', 'row', 'cell', 'head', 'p', 'note');
declare function local:in-sequence
( $values as xs:anyAtomicType* , $sequence as xs:anyAtomicType* ) as xs:boolean {
$values = $sequence
};
declare function local:app-index declare function local:app-index
( $apps as node()* ) as item()* { ( $apps as node()* ) as item()* {
...@@ -153,8 +141,8 @@ declare function local:check-reading ...@@ -153,8 +141,8 @@ declare function local:check-reading
declare function local:is-save-first-node declare function local:is-save-first-node
($node as node()) as xs:boolean { ($node as node()) as xs:boolean {
let $first-descendants := local:first-descendants($node) let $first-descendants := local:first-descendants($node)
let $has-save-first-descendants := not ( local:in-sequence($first-descendants/name(), $blocklevel-elements) ) let $has-save-first-descendants := not ( ident:in-sequence($first-descendants/name(), $ident:blocklevel-elements) )
let $self-ble := functx:is-value-in-sequence( $node/name(), $blocklevel-elements ) let $self-ble := functx:is-value-in-sequence( $node/name(), $ident:blocklevel-elements )
return return
if ($has-save-first-descendants and not ($self-ble)) then (true()) else (false()) if ($has-save-first-descendants and not ($self-ble)) then (true()) else (false())
}; };
...@@ -162,46 +150,12 @@ declare function local:is-save-first-node ...@@ -162,46 +150,12 @@ declare function local:is-save-first-node
declare function local:is-save-last-node declare function local:is-save-last-node
($node as node()) as xs:boolean { ($node as node()) as xs:boolean {
let $last-descendants := local:last-descendants($node) let $last-descendants := local:last-descendants($node)
let $has-save-last-descendants := not ( local:in-sequence($last-descendants/name(), $blocklevel-elements) ) let $has-save-last-descendants := not ( ident:in-sequence($last-descendants/name(), $ident:blocklevel-elements) )
let $self-ble := functx:is-value-in-sequence( $node/name(), $blocklevel-elements ) let $self-ble := functx:is-value-in-sequence( $node/name(), $ident:blocklevel-elements )
return return
if ($has-save-last-descendants and not ($self-ble)) then (true()) else (false()) if ($has-save-last-descendants and not ($self-ble)) then (true()) else (false())
}; };
declare function local:axis-test
( $node as node() ) as item() {
let $left-axis := ident:left-branch-axis($node)
let $right-axis := ident:right-branch-axis($node)
return
element {"axisTest"}{
element {"node"}{$node},
(:element {"test"}{
attribute {"index"}{fn:index-of($left-axis, $left-axis[4])},
fn:index-of($left-axis, $left-axis[ ident:is-or-are-ble(self::node()/name()) ][last()])
},:)
element {"leftAxis"}{
attribute {"names"}{$left-axis/name()},
for $item at $nr in $left-axis
return
element {"item"}{
attribute {"n"}{$nr},
attribute {"gid"}{generate-id($item)},
$item
}
},
element {"rightAxis"}{
attribute {"names"}{$right-axis/name()},
for $item at $nr in $right-axis
return
element {"item"}{
attribute {"n"}{$nr},
attribute {"gid"}{generate-id($item)},
$item
}
}
}
};
let $doc := . let $doc := .
let $pre := pre:preprocessing($doc/node()) let $pre := pre:preprocessing($doc/node())
...@@ -230,10 +184,10 @@ let $test := <test> ...@@ -230,10 +184,10 @@ let $test := <test>
</test> </test>
return ( return (
(:ident:left-nodes-path($test),:) (:ident:left-nodes-path($test),:)
(:local:axis-test($test):) test:branch-axis($test)
(:ident:identify-unit-test($pre):) (:ident:identify-unit-test($pre):)
(:$pre:) (:$pre:)
ident:walk($pre, ()) (:ident:walk($pre, ()):)
(: $target-index:) (: $target-index:)
(:local:target-in-index("d0t36", $app-index),:) (:local:target-in-index("d0t36", $app-index),:)
(:target:conversion-by-target-index($pre, $target-index):) (:target:conversion-by-target-index($pre, $target-index):)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment