Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JCollection.cc File Reference

Example program to test JTOOLS::JCollection class. More...

#include <iostream>
#include <iomanip>
#include "JTools/JCollection.hh"
#include "JTools/JElement.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to test JTOOLS::JCollection class.

Author
mdejong

Definition in file JCollection.cc.

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Definition at line 33 of file JCollection.cc.

34{
35 using namespace std;
36 using namespace JPP;
37
38 int debug;
39
40 try {
41
42 JParser<> zap("Example program to test collection class.");
43
44 zap['d'] = make_field(debug) = 3;
45
46 zap(argc, argv);
47 }
48 catch(const exception &error) {
49 FATAL(error.what() << endl);
50 }
51
52 {
53 typedef JElement2D<int, int> JElement_t;
54 typedef JCollection<JElement_t> JCollection_t;
55
56 JCollection_t a;
57 JCollection_t b;
58 JCollection_t c;
59
60 for (int i = 0; i != 5; ++i) {
61 a.put(i, 10 + i);
62 b.put(i, 100 + i);
63 }
64
65 //b.put(10,10); // throws error at 'a + b' as should be
66
67 try {
68 c = a + b;
69 c += 1000;
70 c *= 2;
71 c += f1;
72 }
73 catch(const JException& error) {
74 FATAL(error.what() << endl);
75 }
76
77 for (JCollection_t::const_iterator i = a.begin(), j = b.begin(), k = c.begin(); i != a.end() && j != b.end() && k != c.end(); ++i, ++j, ++k) {
78 DEBUG(setw(4) << k->getY() << " == " << setw(4) << (i->getY() + j->getY() + 1000) * 2 + f1(i->getX()) << endl);
79 ASSERT(k->getY() == (i->getY() + j->getY() + 1000) * 2 + f1(i->getX()));
80 }
81 }
82
83 {
85
86 typedef JElement2D<int, int> JElement_t;
87 typedef JCollection<JElement_t> JCollection_t;
88
89 JCollection_t a;
90 JCollection_t b;
91 JCollection_t c;
92
93 a.put(0.0, 0.0);
94 a.put(1.0, 1.0);
95 a.put(2.0, 2.0);
96
97 b.put(1.0, 1.0);
98 b.put(2.0, 2.0);
99 b.put(3.0, 3.0);
100
101 c = a + b;
102
103 ASSERT(c.getY(0) == 0.0);
104 ASSERT(c.getY(1) == 2.0);
105 ASSERT(c.getY(2) == 4.0);
106 ASSERT(c.getY(3) == 3.0);
107 }
108
109 return 0;
110}
#define DEBUG(A)
Message macros.
Definition JMessage.hh:62
#define ASSERT(A,...)
Assert macro.
Definition JMessage.hh:90
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
General exception.
Definition JException.hh:24
virtual const char * what() const override
Get error message.
Definition JException.hh:64
Utility class to parse command line options.
Definition JParser.hh:1698
General purpose class for collection of elements, see: <a href="JTools.PDF";>Collection of elements....
Definition JSet.hh:22
const double a
const JPolynome f1(1.0, 2.0, 3.0)
Function.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
int j
Definition JPolint.hh:801
Template class for distance evaluation.
Definition JDistance.hh:24
2D Element.
Definition JPolint.hh:1131