summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/pmt/unv_qa_template.h.t
blob: 5a498f482cf449521b406d064626c2933f83e685 (plain)
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
BOOST_AUTO_TEST_CASE(test_@TAG@vector) {
  static const size_t N = 3;
  pmt::pmt_t v1 = pmt::make_@TAG@vector(N, 0);
  BOOST_CHECK_EQUAL(N, pmt::length(v1));
  @TYPE@ s0 = @TYPE@(10);
  @TYPE@ s1 = @TYPE@(20);
  @TYPE@ s2 = @TYPE@(30);

  pmt::@TAG@vector_set(v1, 0, s0);
  pmt::@TAG@vector_set(v1, 1, s1);
  pmt::@TAG@vector_set(v1, 2, s2);

  BOOST_CHECK_EQUAL(s0, pmt::@TAG@vector_ref(v1, 0));
  BOOST_CHECK_EQUAL(s1, pmt::@TAG@vector_ref(v1, 1));
  BOOST_CHECK_EQUAL(s2, pmt::@TAG@vector_ref(v1, 2));

  BOOST_CHECK_THROW(pmt::@TAG@vector_ref(v1, N), pmt::out_of_range);
  BOOST_CHECK_THROW(pmt::@TAG@vector_set(v1, N, @TYPE@(0)), pmt::out_of_range);

  size_t	len;
  const @TYPE@ *rd = pmt::@TAG@vector_elements(v1, len);
  BOOST_CHECK_EQUAL(len, N);
  BOOST_CHECK_EQUAL(s0, rd[0]);
  BOOST_CHECK_EQUAL(s1, rd[1]);
  BOOST_CHECK_EQUAL(s2, rd[2]);

  @TYPE@ *wr = pmt::@TAG@vector_writable_elements(v1, len);
  BOOST_CHECK_EQUAL(len, N);
  wr[0] = @TYPE@(0);
  BOOST_CHECK_EQUAL(@TYPE@(0), wr[0]);
  BOOST_CHECK_EQUAL(s1, wr[1]);
  BOOST_CHECK_EQUAL(s2, wr[2]);
}