diff options
author | Josh Blum | 2012-11-24 17:52:49 -0800 |
---|---|---|
committer | Josh Blum | 2012-11-24 17:52:49 -0800 |
commit | 27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2 (patch) | |
tree | cc58fc453cc470bd264bfb44328d1c9852962ad5 | |
parent | 6cdf13e84d491c287eb8f713d41f7c2c67a5f395 (diff) | |
parent | 08d5b3833e7ad932a21e6b37ee7e97480dca9818 (diff) | |
download | sandhi-27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2.tar.gz sandhi-27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2.tar.bz2 sandhi-27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2.zip |
Merge branch 'io_sig_size_t'
m--------- | PMC | 0 | ||||
-rw-r--r-- | include/gras/element.i | 2 | ||||
-rw-r--r-- | include/gras/io_signature.hpp | 17 | ||||
-rw-r--r-- | include/gras/io_signature.i | 7 | ||||
-rw-r--r-- | python/gras/GRAS_Block.i | 1 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/io_sig_test.py | 21 |
7 files changed, 35 insertions, 14 deletions
diff --git a/PMC b/PMC -Subproject 8b8837e65078a627ebc7fc53b5b1345fd803584 +Subproject ba5d60f84cd333965050c6db3e9bf4850d22041 diff --git a/include/gras/element.i b/include/gras/element.i index ed21367..8dc360b 100644 --- a/include/gras/element.i +++ b/include/gras/element.i @@ -17,7 +17,7 @@ //////////////////////////////////////////////////////////////////////// %include <std_string.i> %include <gras/gras.hpp> -%include <gras/io_signature.i> +%import <gras/io_signature.i> %include <gras/element.hpp> //////////////////////////////////////////////////////////////////////// diff --git a/include/gras/io_signature.hpp b/include/gras/io_signature.hpp index a637c2c..002f79a 100644 --- a/include/gras/io_signature.hpp +++ b/include/gras/io_signature.hpp @@ -5,7 +5,6 @@ #include <vector> #include <stdexcept> -#include <cstdlib> namespace gras { @@ -16,7 +15,7 @@ namespace gras * Properties are a maximum and minimum number of ports, * and an item size in bytes for each port. */ -struct IOSignature : std::vector<size_t> +struct IOSignature : std::vector<unsigned> { static const int IO_INFINITE = ~0; @@ -28,7 +27,7 @@ struct IOSignature : std::vector<size_t> } //! Create a signature with a single item size - IOSignature(const size_t size) + IOSignature(const unsigned size) { this->push_back(size); this->set_min_streams(IO_INFINITE); @@ -47,7 +46,7 @@ struct IOSignature : std::vector<size_t> } //! Create a signature from a vector of IO widths - IOSignature(const std::vector<size_t> &sig) + IOSignature(const std::vector<unsigned> &sig) { this->assign(sig.begin(), sig.end()); this->set_min_streams(IO_INFINITE); @@ -72,7 +71,7 @@ struct IOSignature : std::vector<size_t> return this; }; - const size_t &at(const size_t index) const + const unsigned &at(const unsigned index) const { if (this->empty()) { @@ -80,12 +79,12 @@ struct IOSignature : std::vector<size_t> } if (this->size() > index) { - return std::vector<size_t>::at(index); + return std::vector<unsigned>::at(index); } return this->back(); } - const size_t &operator[](const size_t index) const + const unsigned &operator[](const unsigned index) const { return this->at(index); } @@ -110,12 +109,12 @@ struct IOSignature : std::vector<size_t> return _max_streams; } - int sizeof_stream_item(const size_t index) const + int sizeof_stream_item(const unsigned index) const { return this->at(index); } - const std::vector<size_t> &sizeof_stream_items(void) const + const std::vector<unsigned> &sizeof_stream_items(void) const { return *this; } diff --git a/include/gras/io_signature.i b/include/gras/io_signature.i index 563dc2b..be9a3fd 100644 --- a/include/gras/io_signature.i +++ b/include/gras/io_signature.i @@ -9,17 +9,16 @@ %ignore gras::IOSignature::operator->(); %ignore gras::IOSignature::operator->() const; +%ignore gras::IOSignature::operator[]; //ignore warnings about %extend %include <std_vector.i> -%template () std::vector<size_t>; - -%ignore gras::IOSignature::operator[]; //ignore warnings about %extend +%template (std_vector_gras_io_signature_unsigned) std::vector<unsigned>; %include <gras/io_signature.hpp> %extend gras::IOSignature { - const size_t &__getitem__(const size_t index) + const unsigned &__getitem__(const unsigned index) { return ($self)->at(index); } diff --git a/python/gras/GRAS_Block.i b/python/gras/GRAS_Block.i index cf23b2a..0becfd0 100644 --- a/python/gras/GRAS_Block.i +++ b/python/gras/GRAS_Block.i @@ -78,6 +78,7 @@ struct PyGILPhondler #include <iostream> %} +%include <gras/io_signature.i> %include <gras/block.i> //////////////////////////////////////////////////////////////////////// diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 275bbda..26012db 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -12,3 +12,4 @@ GR_ADD_TEST(block_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/block_te GR_ADD_TEST(hier_block_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/hier_block_test.py) GR_ADD_TEST(thread_pool_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/thread_pool_test.py) GR_ADD_TEST(sbuffer_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/sbuffer_test.py) +GR_ADD_TEST(io_sig_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/io_sig_test.py) diff --git a/tests/io_sig_test.py b/tests/io_sig_test.py new file mode 100644 index 0000000..3cd90bf --- /dev/null +++ b/tests/io_sig_test.py @@ -0,0 +1,21 @@ +# Copyright (C) by Josh Blum. See LICENSE.txt for licensing information. + +import unittest +import gras + +class IOSigTest(unittest.TestCase): + + def test_io_sig(self): + io = gras.IOSignature() + self.assertEqual(len(io), 0) + + def test_io_sig_extend(self): + io = gras.IOSignature([5, 6, 7]) + self.assertEqual(len(io), 3) + self.assertEqual(io[0], 5) + self.assertEqual(io[1], 6) + self.assertEqual(io[2], 7) + self.assertEqual(io[3], 7) #auto extend + +if __name__ == '__main__': + unittest.main() |