File Coverage

xsi/algorithm/HCoordinate.xsi
Criterion Covered Total %
statement 43 45 95.5
branch 55 106 51.8
condition n/a
subroutine n/a
pod n/a
total 98 151 64.9


line stmt bran cond sub pod time code
1             MODULE = Geo::Geos PACKAGE = Geo::Geos::Algorithm::HCoordinate
2             PROTOTYPES: DISABLE
3              
4             HCoordinate* new(SV*, SV* arg1, SV* arg2 = NULL, SV* arg3 = NULL, SV* arg4 = NULL) {
5 10           if (!arg2) {
6 5 100         auto c = xs::in(arg1);
7 1 50         RETVAL = new HCoordinate(*c);
8 1 50         }
    50          
9             else if(!arg3) {
10 4 100         Object obj1 {arg1}, obj2{arg2};
11 4 50         if(!obj1) throw("wrong argument");
    50          
12 2 50         if(!obj2) throw("wrong argument");
13 2 50         if (obj1.stash().name() == "Geo::Geos::Algorithm::HCoordinate") {
14 2 50         auto& c1 = xs::in(obj1);
    50          
    100          
15 1 50         auto& c2 = xs::in(obj1);
16 1 50         RETVAL = new HCoordinate(c1, c2);
17 1 50         }
    50          
18             else {
19             auto& c1 = xs::in(obj1);
20 1 50         auto& c2 = xs::in(obj1);
21 1 50         RETVAL = new HCoordinate(c1, c2);
22 1 50         }
    50          
23             }
24             else if(!arg4) {
25 2 100         if(!arg1) throw("undef not allowed");
26 1 50         if(!arg2) throw("undef not allowed");
27 1 50         if(!arg3) throw("undef not allowed");
28 1 50         RETVAL = new HCoordinate(Simple(arg1), Simple(arg2), Simple(arg3));
29 1 50         }
    50          
    50          
    50          
    50          
    50          
    50          
    50          
30             else {
31             auto& c1 = xs::in(arg1);
32 1 50         auto& c2 = xs::in(arg2);
33 1 50         auto& c3 = xs::in(arg3);
34 1 50         auto& c4 = xs::in(arg4);
35 1 50         RETVAL = new HCoordinate(c1, c2, c3, c4);
36 1 50         }
    50          
37             }
38              
39             double HCoordinate::x(SV* newval = NULL) : ALIAS(y=1,w=2) {
40             double* val;
41 8           switch (ix) {
42 3           case 0: val = &THIS->x; break;
43 3           case 1: val = &THIS->y; break;
44 2           default: val = &THIS->w; break;
45             }
46 8 50         if (newval) {
47 0 0         *val = SvNV(newval);
    0          
48             }
49 8           RETVAL = *val;
50             }
51              
52             Coordinate* HCoordinate::getCoordinate() {
53 2           Coordinate c;
54 1 50         THIS->getCoordinate(c);
55 1 50         RETVAL = new Coordinate(c);
56 1 50         }
57              
58              
59             Coordinate* intersection( Coordinate& p1, Coordinate& p2, Coordinate& q1, Coordinate& q2) {
60 2           Coordinate c;
61 1 50         HCoordinate::intersection(p1, p2, q1, q2, c);
62 1 50         RETVAL = new Coordinate(c);
63 1 50         }
64              
65             std::string HCoordinate::toString(...) {
66 12 50         std::ostringstream out;
67 6 50         out << *THIS;
68 6 50         RETVAL = out.str();
    50          
69             }
70              
71 0           int CLONE_SKIP (...) { PERL_UNUSED_VAR(items); RETVAL = 1; }
72              
73             BOOT {
74 46 50         xs::exp::autoexport(Stash(__PACKAGE__));
    50          
75             }