testunpack.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <boost/test/minimal.hpp>
00023
00024 #include "unpack.h"
00025 #include "ifd.h"
00026
00027
00028 int test_unpack()
00029 {
00030 const uint8_t packed[32] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF,
00031 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0x00,
00032 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF,
00033 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0x00};
00034 uint16_t unpacked[20];
00035
00036 OpenRaw::Internals::Unpack
00037 unpack(32, OpenRaw::Internals::IFD::COMPRESS_NIKON_PACK);
00038
00039 size_t s = unpack.unpack_be12to16((uint8_t*)unpacked, packed,
00040 sizeof(packed));
00041 BOOST_CHECK(s = size_t(sizeof(unpacked)));
00042 for (size_t i = 0; i < 2; ++i) {
00043 BOOST_CHECK(unpacked[10 * i + 0] == 0x0123);
00044 BOOST_CHECK(unpacked[10 * i + 1] == 0x0456);
00045 BOOST_CHECK(unpacked[10 * i + 2] == 0x0789);
00046 BOOST_CHECK(unpacked[10 * i + 3] == 0x00AB);
00047 BOOST_CHECK(unpacked[10 * i + 4] == 0x0CDE);
00048 BOOST_CHECK(unpacked[10 * i + 5] == 0x0F12);
00049 BOOST_CHECK(unpacked[10 * i + 6] == 0x0345);
00050 BOOST_CHECK(unpacked[10 * i + 7] == 0x0678);
00051 BOOST_CHECK(unpacked[10 * i + 8] == 0x090A);
00052 BOOST_CHECK(unpacked[10 * i + 9] == 0x0BCD);
00053 }
00054 return 0;
00055 }
00056
00057 int test_unpack2()
00058 {
00059 const uint8_t packed[3] = {0x12, 0x34, 0x56};
00060 uint16_t unpacked[2];
00061
00062 OpenRaw::Internals::Unpack unpack(32,
00063 OpenRaw::Internals::IFD::COMPRESS_NONE);
00064
00065 size_t s = unpack.unpack_be12to16((uint8_t*)unpacked, packed,
00066 sizeof(packed));
00067 BOOST_CHECK(s == size_t(sizeof(unpacked)));
00068 BOOST_CHECK(unpacked[0] == 0x0123);
00069 BOOST_CHECK(unpacked[1] == 0x0456);
00070 return 0;
00071 }
00072
00073 int test_main( int , char * [] )
00074 {
00075 test_unpack();
00076 test_unpack2();
00077 return 0;
00078 }