~awuerl/blitzortung-tracker/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>

#include "data/sample/V1.h"
#include "test-lib-data-samples.h"

CPPUNIT_TEST_SUITE_REGISTRATION( SampleTest );

bo::data::sample::Base::AP SampleTest::getSample() {
  return bo::data::sample::Base::AP((*sampleCreator_)());
}

bo::data::sample::Base::AP SampleTest::getSample(const pt::ptime& time) {
  bo::data::sample::Base::AP sample = getSample();
  sample->setTime(time);
  return sample;
}

bo::data::Samples::P SampleTest::getSamples1() {
  gr::date sampleDate(2010,8,1);

  std::vector<pt::time_duration> sampleTimes;
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,0));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,010));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,020));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,050));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,075));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,100));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,150));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,200));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,250));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,500));
  sampleTimes.push_back(pt::time_duration( 0, 0, 0,750));
  sampleTimes.push_back(pt::time_duration( 0, 0, 1,0));
  sampleTimes.push_back(pt::time_duration( 0, 0,10,0));
  sampleTimes.push_back(pt::time_duration( 0, 0,30,0));
  sampleTimes.push_back(pt::time_duration( 0, 1,30,0));
  sampleTimes.push_back(pt::time_duration( 0, 5,00,0));
  sampleTimes.push_back(pt::time_duration(12,35,10,0));
  sampleTimes.push_back(pt::time_duration(12,40,10,0));
  sampleTimes.push_back(pt::time_duration(12,45,10,0));
  sampleTimes.push_back(pt::time_duration(12,50,10,0));
  sampleTimes.push_back(pt::time_duration(12,51,05,0));
  sampleTimes.push_back(pt::time_duration(12,51,06,0));
  sampleTimes.push_back(pt::time_duration(12,51,07,0));
  sampleTimes.push_back(pt::time_duration(20,00,00,000));
  sampleTimes.push_back(pt::time_duration(21,00,00,000));
  sampleTimes.push_back(pt::time_duration(22,00,00,000));
  sampleTimes.push_back(pt::time_duration(23,00,00,000));
  sampleTimes.push_back(pt::time_duration(23,50,00,000));
  sampleTimes.push_back(pt::time_duration(23,55,00,000));
  sampleTimes.push_back(pt::time_duration(23,59,59,000));

  bo::data::Samples::P samples(new bo::data::Samples());

  for (std::vector<pt::time_duration>::iterator sampleTime = sampleTimes.begin(); sampleTime != sampleTimes.end(); sampleTime++) {
    pt::ptime sampleDateTime(sampleDate, *sampleTime);
    bo::data::sample::Base::AP sample((*sampleCreator_)());

    sample->setTime(sampleDateTime);
    sample->setAmplitude(1, 1.0, 0.0);

    samples->add(sample);
  }

  return samples;
}

bo::data::Samples::P SampleTest::getSamples2() {
  bo::data::Samples::P samples(new bo::data::Samples());

  return samples;
}

void SampleTest::setUp() {
  sampleCreator_ = boost::shared_ptr<bo::data::sample::Base::Creator>(new bo::data::sample::V1::Creator());
}

void SampleTest::tearDown() {

}

void SampleTest::testAdd() {

  gr::date sampleDate(2010,8,1);

  bo::data::Samples samples;

  samples.add(getSample(pt::ptime(sampleDate, pt::time_duration(11,20,00))));
  samples.add(getSample(pt::ptime(sampleDate, pt::time_duration(11,21,00))));
  samples.add(getSample(pt::ptime(sampleDate, pt::time_duration(11,22,00))));
  samples.add(getSample(pt::ptime(sampleDate, pt::time_duration(11,25,00))));
  samples.add(getSample(pt::ptime(sampleDate, pt::time_duration(11,30,00))));


  CPPUNIT_ASSERT_THROW(samples.add(getSample(pt::ptime(sampleDate, pt::time_duration(11,30,00)) + gr::days(1))), bo::exception::Base);

  std::string fileName = samples.appendToFile("UserName_%Y%m%d.bos");

  samples.readFromFile(fileName);

  for(bo::data::Samples::I sample=samples.begin(); sample != samples.end(); sample++) {
    std::cout << *sample << std::endl;
  }
}