File Coverage

xsi/noding/NodedSegmentString.xsi
Criterion Covered Total %
statement 18 20 90.0
branch 24 52 46.1
condition n/a
subroutine n/a
pod n/a
total 42 72 58.3


line stmt bran cond sub pod time code
1             MODULE = Geo::Geos PACKAGE = Geo::Geos::Noding::NodedSegmentString
2             PROTOTYPES: DISABLE
3              
4             NodedSegmentString* new(SV*, Array coords) {
5 30           auto seq = Helper::convert_coords(coords);
6 30 50         auto v = new NodedSegmentString(seq.clone(), NULL);
    50          
7 15 50         RETVAL = v;
    50          
8 15           }
9              
10             Sv NodedSegmentString::addIntersectionNode (Coordinate& c, std::size_t segmentIndex) {
11 3 50         auto* node = THIS->addIntersectionNode(&c, segmentIndex);
12 6 50         Sv wrapped = xs::out(node);
    50          
13 6 50         Object obj{ST(0)};
    50          
14 3 50         wrapped.payload_attach(obj.detach(), &payload_marker);
    50          
15 3 50         RETVAL = wrapped;
16             }
17              
18 0 0         int NodedSegmentString::getSegmentOctant (unsigned int index)
19              
20             void NodedSegmentString::addIntersections (LineIntersector& li, unsigned int segmentIndex, int geomIndex) {
21 1           THIS->addIntersections(&li, segmentIndex, geomIndex);
22             }
23              
24             void NodedSegmentString::addIntersection (Object arg1, unsigned int segmentIndex, SV* arg3 = NULL, SV* arg4 = NULL) {
25 2 100         if (!arg3) {
26 1 50         auto& c = xs::in(arg1);
27 1 50         THIS->addIntersection(c, segmentIndex);
28             }
29             else {
30 1 50         auto& li = xs::in(arg1);
31 1 50         if (!arg3) throw("missing mandatory argument");
32 1 50         if (!arg4) throw("missing mandatory argument");
33 1 50         THIS->addIntersection(&li, segmentIndex, SvIV(arg3), SvIV(arg4));
    0          
    50          
    0          
    50          
34             }
35             }
36              
37 0           int CLONE_SKIP (...) { PERL_UNUSED_VAR(items); RETVAL = 1; }
38              
39             BOOT {
40 46 50         Stash(__PACKAGE__).inherit("Geo::Geos::Noding::SegmentString");
    50          
41             }