|
Packit |
0d464f |
///////////////////////////////////////////////////////////////////////////
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Copyright (c) 2007 Weta Digital Ltd
|
|
Packit |
0d464f |
// Copyright (c) 2012 Industrial Light & Magic, a division of Lucasfilm
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// All rights reserved.
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Redistribution and use in source and binary forms, with or without
|
|
Packit |
0d464f |
// modification, are permitted provided that the following conditions are
|
|
Packit |
0d464f |
// met:
|
|
Packit |
0d464f |
// * Redistributions of source code must retain the above copyright
|
|
Packit |
0d464f |
// notice, this list of conditions and the following disclaimer.
|
|
Packit |
0d464f |
// * Redistributions in binary form must reproduce the above
|
|
Packit |
0d464f |
// copyright notice, this list of conditions and the following disclaimer
|
|
Packit |
0d464f |
// in the documentation and/or other materials provided with the
|
|
Packit |
0d464f |
// distribution.
|
|
Packit |
0d464f |
// * Neither the name of Weta Digital nor the names of
|
|
Packit |
0d464f |
// its contributors may be used to endorse or promote products derived
|
|
Packit |
0d464f |
// from this software without specific prior written permission.
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
Packit |
0d464f |
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
Packit |
0d464f |
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
Packit |
0d464f |
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
Packit |
0d464f |
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
Packit |
0d464f |
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
Packit |
0d464f |
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
Packit |
0d464f |
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
Packit |
0d464f |
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
Packit |
0d464f |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
Packit |
0d464f |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
///////////////////////////////////////////////////////////////////////////
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
#include <ImfMultiView.h>
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
#include <typeinfo>
|
|
Packit |
0d464f |
#include <sstream>
|
|
Packit |
0d464f |
#include <string.h>
|
|
Packit |
0d464f |
#include <assert.h>
|
|
Packit |
0d464f |
#include <stdarg.h>
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
using namespace OPENEXR_IMF_NAMESPACE;
|
|
Packit |
0d464f |
using namespace std;
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
namespace {
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList
|
|
Packit |
0d464f |
buildList (const char *name, ...)
|
|
Packit |
0d464f |
{
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// nice function to build channel lists
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList list;
|
|
Packit |
0d464f |
const char *channelName = name;
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
va_list ap;
|
|
Packit |
0d464f |
va_start (ap, name);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
while (channelName != 0)
|
|
Packit |
0d464f |
{
|
|
Packit |
0d464f |
list.insert (channelName, Channel());
|
|
Packit |
0d464f |
channelName = va_arg (ap, char *);
|
|
Packit |
0d464f |
}
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
va_end (ap);
|
|
Packit |
0d464f |
return list;
|
|
Packit |
0d464f |
}
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
void
|
|
Packit |
0d464f |
testMultiViewFunctions ()
|
|
Packit |
0d464f |
{
|
|
Packit |
0d464f |
StringVector multiView;
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
multiView.push_back ("right");
|
|
Packit |
0d464f |
multiView.push_back ("left");
|
|
Packit |
0d464f |
multiView.push_back ("centre");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Test viewFromChannelName()
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// default view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("R", multiView) == "right");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// explicitly specified default view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("right.balween", multiView) == "right");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// non-default view: two sections
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("left.gritstone", multiView) == "left");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// non-default view: two sections
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("centre.ronaldsay", multiView) == "centre");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// non-default view: three sections
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("swaledale.left.lonk", multiView) == "left");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// explicitly specified default view: four sections
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("manx.loghtan.right.shetland",
|
|
Packit |
0d464f |
multiView) == "right");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// non-default view: five sections
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("dorset.down.hebridean.centre.r",
|
|
Packit |
0d464f |
multiView) == "centre");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// shouldn't happen that we have null channel names
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("", multiView) == "");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// single section with no view name: default view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("dartmoor", multiView) == "right");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// two sections with no view name: no view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("scottish.blackface", multiView) == "");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// three sections with no view name: no view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("beulah.speckled.face", multiView) == "");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// four sections with no view name: no view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (viewFromChannelName ("devon.and.cornwall.longwool",
|
|
Packit |
0d464f |
multiView) == "");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Test areCounterparts()
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// two non default channel names in list
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("right.R",
|
|
Packit |
0d464f |
"centre.R",
|
|
Packit |
0d464f |
multiView) == true);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// two channel names, both explicit and in list,
|
|
Packit |
0d464f |
// even though one is default channel
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("left.R",
|
|
Packit |
0d464f |
"right.R",
|
|
Packit |
0d464f |
multiView) == true);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// default view with non-default view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("R",
|
|
Packit |
0d464f |
"left.R",
|
|
Packit |
0d464f |
multiView) == true);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// as above, but other way round
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("left.R",
|
|
Packit |
0d464f |
"R",
|
|
Packit |
0d464f |
multiView) == true);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// same channel name specified in two different ways
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("right.R",
|
|
Packit |
0d464f |
"R",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// as above, but other way round
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("R",
|
|
Packit |
0d464f |
"right.R",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// none.R is not in a view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("none.R",
|
|
Packit |
0d464f |
"left.R",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// as above, but other way round
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("left.R",
|
|
Packit |
0d464f |
"none.R",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// as above, but with default channel
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("X",
|
|
Packit |
0d464f |
"none.X",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// as above, but other way round
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("none.B",
|
|
Packit |
0d464f |
"B",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// both not in a view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("southdown.none.G",
|
|
Packit |
0d464f |
"wiltshire.horn.G",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// as above, but different lengths of names
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wiltshire.horn.G",
|
|
Packit |
0d464f |
"cotswold.G",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// three section pairs
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wensleydale.left.baa",
|
|
Packit |
0d464f |
"wensleydale.right.baa",
|
|
Packit |
0d464f |
multiView) == true);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// different in first section
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wensleydal.left.baa",
|
|
Packit |
0d464f |
"wensleydale.right.baa",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// different in last section
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wensleydale.left.bah",
|
|
Packit |
0d464f |
"wensleydale.right.baa",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// same channel
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wensleydale.left.baa",
|
|
Packit |
0d464f |
"wensleydale.left.baa",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// second is in no view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wensleydale.right.fell",
|
|
Packit |
0d464f |
"wensleydale.rough.fell",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// first is in no view
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("wensleydale.rough.fell",
|
|
Packit |
0d464f |
"wensleydale.left.fell",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// four sectons
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("lincoln.longwool.right.A",
|
|
Packit |
0d464f |
"lincoln.longwool.left.A",
|
|
Packit |
0d464f |
multiView) == true);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// different in final section
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("lincoln.longwool.right.B",
|
|
Packit |
0d464f |
"lincoln.longwool.left.A",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// different in second section
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("lincoln.shortwool.right.A",
|
|
Packit |
0d464f |
"lincoln.longwool.left.A",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// different in first section
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("cumbria.longwool.right.A",
|
|
Packit |
0d464f |
"lincoln.longwool.left.A",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// enough said
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("baa.baa.black.sheep",
|
|
Packit |
0d464f |
"lincoln.longwool.left.A",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// three sections with default - only last is same
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("portland.left.baa",
|
|
Packit |
0d464f |
"baa",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// four sections with default
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (areCounterparts ("dorset.down.left.baa",
|
|
Packit |
0d464f |
"baa",
|
|
Packit |
0d464f |
multiView) == false);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Channel list tests
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// list of channels in some multiview image
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList a = buildList
|
|
Packit |
0d464f |
("A",
|
|
Packit |
0d464f |
"B",
|
|
Packit |
0d464f |
"C",
|
|
Packit |
0d464f |
"right.jacob",
|
|
Packit |
0d464f |
"shropshire.right.D",
|
|
Packit |
0d464f |
"castlemilk.moorit.right.A",
|
|
Packit |
0d464f |
"black.welsh.mountain.right.A",
|
|
Packit |
0d464f |
"left.A",
|
|
Packit |
0d464f |
"left.B",
|
|
Packit |
0d464f |
"left.C",
|
|
Packit |
0d464f |
"left.jacob",
|
|
Packit |
0d464f |
"shropshire.left.D",
|
|
Packit |
0d464f |
"castlemilk.moorit.left.A",
|
|
Packit |
0d464f |
"black.welsh.mountain.left.A",
|
|
Packit |
0d464f |
"centre.A",
|
|
Packit |
0d464f |
"centre.B",
|
|
Packit |
0d464f |
"centre.C",
|
|
Packit |
0d464f |
"shropshire.centre.D",
|
|
Packit |
0d464f |
"castlemilk.moorit.centre.A",
|
|
Packit |
0d464f |
"none.A",
|
|
Packit |
0d464f |
"none.B",
|
|
Packit |
0d464f |
"none.C",
|
|
Packit |
0d464f |
"none.D",
|
|
Packit |
0d464f |
"none.jacob",
|
|
Packit |
0d464f |
"shropshire.none.D",
|
|
Packit |
0d464f |
"rough.fell",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// List of channels in each view
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// all left channels
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realLeft = buildList
|
|
Packit |
0d464f |
("left.A",
|
|
Packit |
0d464f |
"left.B",
|
|
Packit |
0d464f |
"left.C",
|
|
Packit |
0d464f |
"left.jacob",
|
|
Packit |
0d464f |
"shropshire.left.D",
|
|
Packit |
0d464f |
"castlemilk.moorit.left.A",
|
|
Packit |
0d464f |
"black.welsh.mountain.left.A",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realRight = buildList
|
|
Packit |
0d464f |
("A",
|
|
Packit |
0d464f |
"B",
|
|
Packit |
0d464f |
"C",
|
|
Packit |
0d464f |
"right.jacob",
|
|
Packit |
0d464f |
"shropshire.right.D",
|
|
Packit |
0d464f |
"castlemilk.moorit.right.A",
|
|
Packit |
0d464f |
"black.welsh.mountain.right.A",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// all the right channels including the default channels
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realCentre = buildList
|
|
Packit |
0d464f |
("centre.A",
|
|
Packit |
0d464f |
"centre.B",
|
|
Packit |
0d464f |
"centre.C",
|
|
Packit |
0d464f |
"shropshire.centre.D",
|
|
Packit |
0d464f |
"castlemilk.moorit.centre.A",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// no jacob channel
|
|
Packit |
0d464f |
// there IS a jacob channel but it has no counterparts because
|
|
Packit |
0d464f |
// this is in "no view"
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realNone = buildList
|
|
Packit |
0d464f |
("none.A",
|
|
Packit |
0d464f |
"none.B",
|
|
Packit |
0d464f |
"none.D",
|
|
Packit |
0d464f |
"none.C",
|
|
Packit |
0d464f |
"none.jacob",
|
|
Packit |
0d464f |
"shropshire.none.D",
|
|
Packit |
0d464f |
"rough.fell",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// have a dummy name just to throw a wolf amongst the sheep
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
multiView.push_back ("wolf");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// no channels
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realNull = buildList ((char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Test channelsInView()
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// default view channel extraction
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelsInView ("right", a, multiView) == realRight);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// non-default view channel extraction
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelsInView ("left", a, multiView) == realLeft);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// missing 'centre.jacob'
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelsInView ("centre", a, multiView) == realCentre);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// "none" isn't a view name, no channels returned
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelsInView ("none", a, multiView) == realNull);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// "wolf" has no channels, no channels returned
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelsInView ("wolf", a, multiView) == realNull);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
// all no view channels
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelsInNoView (a, multiView) == realNone);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Test channelInAllViews()
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realA = buildList
|
|
Packit |
0d464f |
("left.A",
|
|
Packit |
0d464f |
"A",
|
|
Packit |
0d464f |
"centre.A",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realB = buildList
|
|
Packit |
0d464f |
("left.B",
|
|
Packit |
0d464f |
"B",
|
|
Packit |
0d464f |
"centre.B",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realJacob = buildList
|
|
Packit |
0d464f |
("left.jacob",
|
|
Packit |
0d464f |
"right.jacob",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realCm = buildList
|
|
Packit |
0d464f |
("castlemilk.moorit.left.A",
|
|
Packit |
0d464f |
"castlemillk.moorit.right.A",
|
|
Packit |
0d464f |
"castlemilk.moorit.centre.A",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
ChannelList realBwm = buildList
|
|
Packit |
0d464f |
("black.welsh.mountain.left.A",
|
|
Packit |
0d464f |
"black.welsh.mountain.right.A",
|
|
Packit |
0d464f |
(char *) 0);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelInAllViews ("left.A", a, multiView) == realA);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelInAllViews ("A", a, multiView) == realA);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelInAllViews ("centre.B", a, multiView) == realB);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelInAllViews ("right.jacob", a, multiView) == realJacob);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelInAllViews ("castlemilk.moorit.centre.A",
|
|
Packit |
0d464f |
a, multiView) == realCm);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (channelInAllViews ("black.welsh.mountain.right.A",
|
|
Packit |
0d464f |
a, multiView) == realBwm);
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
// Test insertViewName()
|
|
Packit |
0d464f |
//
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("A", multiView, 0) ==
|
|
Packit |
0d464f |
"A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("mountain.A", multiView, 0) ==
|
|
Packit |
0d464f |
"mountain.right.A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("welsh.mountain.A", multiView, 0) ==
|
|
Packit |
0d464f |
"welsh.mountain.right.A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("black.welsh.mountain.A", multiView, 0) ==
|
|
Packit |
0d464f |
"black.welsh.mountain.right.A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("A", multiView, 1) ==
|
|
Packit |
0d464f |
"left.A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("mountain.A", multiView, 1) ==
|
|
Packit |
0d464f |
"mountain.left.A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("welsh.mountain.A", multiView, 1) ==
|
|
Packit |
0d464f |
"welsh.mountain.left.A");
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
assert (insertViewName ("black.welsh.mountain.A", multiView, 1) ==
|
|
Packit |
0d464f |
"black.welsh.mountain.left.A");
|
|
Packit |
0d464f |
}
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
} // namespace
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
|
|
Packit |
0d464f |
void
|
|
Packit |
0d464f |
testMultiView (const std::string&)
|
|
Packit |
0d464f |
{
|
|
Packit |
0d464f |
try
|
|
Packit |
0d464f |
{
|
|
Packit |
0d464f |
cout << "Testing multi-view channel list functions" << endl;
|
|
Packit |
0d464f |
testMultiViewFunctions();
|
|
Packit |
0d464f |
cout << "ok\n" << endl;
|
|
Packit |
0d464f |
}
|
|
Packit |
0d464f |
catch (const std::exception &e)
|
|
Packit |
0d464f |
{
|
|
Packit |
0d464f |
cerr << "ERROR -- caught exception: " << e.what() << endl;
|
|
Packit |
0d464f |
assert (false);
|
|
Packit |
0d464f |
}
|
|
Packit |
0d464f |
}
|