source: Sophya/trunk/SophyaProg/Tests/tstsegdb.cc@ 4038

Last change on this file since 4038 was 3568, checked in by ansari, 17 years ago

Petite modif prog. test SegDataBlock - Reza 06/02/2009

File size: 3.9 KB
Line 
1#include "sopnamsp.h"
2#include "machdefs.h"
3#include <stdio.h>
4#include <stdlib.h>
5#include "math.h"
6#include <iostream>
7#include <string>
8
9#include <typeinfo>
10#include "timing.h"
11#include "histinit.h"
12#include "pexceptions.h"
13#include "segdatablock.h"
14#include "fiosegdb.h"
15#include "swsegdb.h"
16#include "ppfswapper.h"
17#include "ppfwrapstlv.h"
18
19/* Programme test des classes SegDataBlock<T> et son PPF writer */
20/* SwSegDataBlock<T> avec le swapper PPF */
21/* SOPHYA - R. Ansari (LAL) - Avril 2005 */
22
23int main(int narg, char* arg[])
24{
25 cout << " ---- Programme tstsegdb.cc ----- \n"
26 << " Test classe SegDataBlock<T> et SwSegDataBlock<T> " << endl;
27 int rc = 0;
28 try {
29 SophyaInit();
30
31 InitTim();
32 cout << "1/ Test SegDataBlock Creation,remplissage, impression (segi, ssegi, sgds" << endl;
33 SegDataBlock<int> segi;
34 segi.Extend();
35 cout << segi;
36
37 SegDataBlock<int> ssegi(segi);
38 segi = 432;
39 ssegi.Extend();
40 ssegi.Print(cout, 4, " , ");
41 SegDataBlock<string> sgds(5,3);
42 cout << sgds;
43 sgds[2] = "bonjour"; sgds[5] = "AAAA";
44 sgds[8] = "BbbBBbb";
45 sgds.Print(cout, 4, " ; ");
46
47 cout << "1.b/ Testing SegDataBlock<string> srsdb.Share(sgds)" << endl;
48 SegDataBlock<string> srsdb;
49 srsdb.Share(sgds);
50 srsdb.Print(cout, 4, " ; ");
51 srsdb[6] = "HelloBug";
52 sgds.Print(cout, 4, " ; ");
53
54 cout << "1.c/ Appel operateur copie : sgsdscp = sgds " << endl;
55 SegDataBlock<string> sgdscp;
56 sgdscp = sgds;
57 {
58 cout << "2/ Ecriture segi sgds et ssegi dans segdb.ppf " << endl;
59 POutPersist so("segdb.ppf");
60 so << segi << sgds << ssegi;
61 }
62 {
63 cout << "3/ Lecture depuis segdb.ppf et print " << endl;
64 SegDataBlock<int> rsd1, rsd2;
65 SegDataBlock<string> rsds;
66 PInPersist si("segdb.ppf");
67 si >> rsd1 >> rsds >> rsd2;
68 rsds.Print(cout, 4, " ; ");
69 cout << "4/ On modifie certains elements de rsd1 et on verifie le partage de reference en lecture" << endl;
70 for(int jj=0; jj<rsd1.Size(); jj += 9)
71 rsd1[jj] = 999;
72 rsd1.Print(cout, 4, " , ");
73 rsd2.Print(cout, 4, " , ");
74 }
75 cout << "5/ Test SwSegDataBlock<T> creation/remplissage " << endl;
76 int SWSEGSZ = 4;
77 {
78 cout << " Creation PPFDataSwapper<float> swout(so) avec swseg.ppf " << endl;
79 POutPersist so("swseg.ppf");
80 PPFDataSwapper<float> swout(so);
81 SwSegDataBlock<float> swsd(swout, SWSEGSZ, 3);
82 float * fp = swsd.GetSegment(0);
83 fp[0] = 6.54321; fp[1] = 65.4321; fp[2] = 654.321; fp[3] = 6543.21;
84 fp = swsd.GetSegment(1);
85 fp[0] = 2.56789; fp[1] = 25.6789; fp[2] = 256.789; fp[3] = 2567.89;
86 fp = swsd.GetSegment(2);
87 fp[0] = 12.567; fp[1] = 225.67; fp[2] = 3256.7; fp[3] = 42567.;
88 vector<int_8> tags = swsd.GetSwapPosTagTable();
89 so << tags;
90 }
91 {
92 cout << "6/ Creation PPFDataSwapper<float> avec lecture depuis swseg.ppf " << endl;
93 PInPersist si("swseg.ppf");
94 PPFDataSwapper<float> swin(si);
95 vector<int_8> tags;
96 si >> tags;
97 SwSegDataBlock<float> swsd(swin, tags, SWSEGSZ);
98 cout <<"7/ Recopie ds SegDataBlock<float> depuis SwSegDataBlock<float> et print" << endl;
99 SegDataBlock<float> segf,segf2;
100 segf = swsd;
101 segf.Print(cout, 4, " ");
102 segf2 = swsd;
103 segf2.Print(cout, 4, " ");
104 }
105
106 }
107 catch (PThrowable & exc) {
108 cerr << " tstsegdb.cc: Catched Exception (PThrowable)" << (string)typeid(exc).name()
109 << " - Msg= " << exc.Msg() << endl;
110 rc = 99;
111 }
112 catch (std::exception & e) {
113 cerr << " tstsegdb.cc: Catched std::xception "
114 << " - what()= " << e.what() << endl;
115 rc = 98;
116 }
117 catch (...) {
118 cerr << " tstsegdb.cc: some other exception (...) was caught ! " << endl;
119 rc = 97;
120 }
121 PrtTim("End tstsegdb " );
122 cout << " ---- Programme tstsegdb.cc - FIN (Rc=" << rc << ") --- " << endl;
123 return rc;
124}
Note: See TracBrowser for help on using the repository browser.