GCC Code Coverage Report


Directory: ./
File: tests/sot/tsot.cpp
Date: 2024-11-13 12:35:17
Exec Total Coverage
Lines: 30 35 85.7%
Branches: 38 80 47.5%

Line Branch Exec Source
1 /*
2 * Copyright 2010,
3 * François Bleibel,
4 * Olivier Stasse,
5 *
6 * CNRS/AIST
7 *
8 */
9
10 /* -------------------------------------------------------------------------- */
11 /* --- INCLUDES ------------------------------------------------------------- */
12 /* -------------------------------------------------------------------------- */
13 #include <iostream>
14 //#include <sot/core/sot-h.hh>
15 #include <dynamic-graph/linear-algebra.h>
16
17 #include <sot/core/debug.hh>
18 #include <sot/core/feature-abstract.hh>
19 #include <sot/core/feature-visual-point.hh>
20 #include <sot/core/gain-adaptive.hh>
21 #include <sot/core/task.hh>
22
23 using namespace std;
24 using namespace dynamicgraph::sot;
25
26 double drand(void) { return 2 * ((double)rand()) / RAND_MAX - 1; }
27 dynamicgraph::Matrix &mrand(dynamicgraph::Matrix &J) {
28 for (int i = 0; i < J.rows(); ++i)
29 for (int j = 0; j < J.cols(); ++j) J(i, j) = drand();
30 return J;
31 }
32
33 1 int main(void) {
34 1 sotDEBUGF("# In {");
35
36 1 srand(12);
37
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 dynamicgraph::Matrix Jq(6, 6);
38
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 Jq.setIdentity();
39
40
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 dynamicgraph::Vector p1xy(2);
41
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 p1xy(0) = 1.;
42
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 p1xy(1) = -2;
43
44 1 sotDEBUGF("Create feature");
45
3/6
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
1 FeatureVisualPoint *p1 = new FeatureVisualPoint("p1");
46
3/6
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
1 FeatureVisualPoint *p1des = new FeatureVisualPoint("p1des");
47
48
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 p1->articularJacobianSIN.setReference(&Jq);
49
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 p1->selectionSIN = Flags(true);
50
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 p1->setReference(p1des);
51
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 p1->xySIN = p1xy;
52
53
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 p1des->xySIN = dynamicgraph::Vector(2);
54
55 1 sotDEBUGF("Create Task");
56 // sotDEBUG(0) << dynamicgraph::MATLAB;
57
58
3/6
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
1 Task *task = new Task("task");
59
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 task->addFeature(*p1);
60
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 task->addFeature(*p1);
61
62
3/6
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
1 GainAdaptive *lambda = new GainAdaptive("g");
63
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 lambda->errorSIN.plug(&task->errorSOUT);
64
65
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 task->controlGainSIN.plug(&lambda->gainSOUT);
66
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 task->dampingGainSINOUT = .1;
67
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 task->controlSelectionSIN = Flags(true);
68
69
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 task->jacobianSOUT.display(cout) << endl;
70
5/10
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
1 task->jacobianSOUT.displayDependencies(cout) << endl;
71
72 sotDEBUG(0) << "J" << task->jacobianSOUT(2);
73 sotDEBUG(0) << "e" << task->errorSOUT(2) << endl;
74
75 1 sotDEBUGF("# Out }");
76
77 1 return 0;
78 1 }
79