You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1451 lines
32 KiB

// This may look like C code, but it is really -*- C++ -*-
//
// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003
//
// Tests for setting/getting Magick::Image attributes
//
#include <Magick++.h>
#include <string>
#include <iostream>
using namespace std;
using namespace Magick;
int main( int /*argc*/, char ** argv)
{
// Initialize ImageMagick install location for Windows
InitializeMagick(*argv);
volatile int failures=0;
try {
size_t columns = 640;
size_t rows = 480;
Geometry geometry(columns,rows);
Color canvasColor( "red" );
Image image( geometry, canvasColor);
//
// antiAlias
//
// Test default value
if ( image.textAntiAlias() != true )
{
++failures;
cout << "Line: " << __LINE__ << ", textAntiAlias default not true" << endl;
}
// Test setting false
image.textAntiAlias( false );
if ( image.textAntiAlias() != false )
{
++failures;
cout << "Line: " << __LINE__ << ", textAntiAlias not false" << endl;
}
// Test setting true
image.textAntiAlias( true );
if ( image.textAntiAlias() != true )
{
++failures;
cout << "Line: " << __LINE__ << ", textAntiAlias not true" << endl;
}
//
// adjoin
//
// Test default value
if ( image.adjoin() != true )
{
++failures;
cout << "Line: " << __LINE__
<< ", adjoin default not 'true' as expected" << endl;
}
// Test setting false
image.adjoin( false );
if ( image.adjoin() != false )
{
++failures;
cout << "Line: " << __LINE__ << ", adjoin failed set to 'false'" << endl;
}
// Test setting true
image.adjoin( true );
if ( image.adjoin() != true )
{
++failures;
cout << "Line: " << __LINE__ << ", adjoin failed set to 'true'" << endl;
}
//
// animationDelay
//
// Test default value
if ( image.animationDelay() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", animationDelay default ("
<< image.animationDelay()
<< ") not 0 as expected" << endl;
}
// Test setting to 0
image.animationDelay( 0 );
if ( image.animationDelay() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set animationDelay to 0" << endl;
}
// Test setting to 100
image.animationDelay( 100 );
if ( image.animationDelay() != 100 )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set animationDelay to 100" << endl;
}
image.animationDelay(0);
//
// animationIterations
//
// Test default value
if ( image.animationIterations() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", animationIterations default ("
<< image.animationIterations()
<< ") not 0 as expected" << endl;
}
// Test setting to 0
image.animationIterations( 0 );
if ( image.animationIterations() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set animationIterations to 0" << endl;
}
// Test setting to 100
image.animationIterations( 100 );
if ( image.animationIterations() != 100 )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set animationIterations to 100" << endl;
}
image.animationIterations( 0 );
//
// backgroundColor
//
// Test default value.
if ( string(image.backgroundColor()) != string(ColorRGB("white")) )
{
++failures;
cout << "Line: " << __LINE__ << ", backgroundColor default ("
<< string(image.backgroundColor())
<< ") is incorrect" << endl;
}
// Test setting to blue
image.backgroundColor("blue");
if ( !image.backgroundColor().isValid() )
{
++failures;
cout << "Line: " << __LINE__ << ", backgroundColor ("
<< string(image.backgroundColor())
<< ") failed set to 'blue'" << endl;
}
else
if ( string(image.backgroundColor()) != "#0000FF" &&
string(image.backgroundColor()) != "#00000000FFFF" &&
string(image.backgroundColor()) != "#0000000000000000FFFFFFFF" &&
string(image.backgroundColor()) != "#00000000000000000000000000000000FFFFFFFFFFFFFFFF" )
{
++failures;
cout << "Line: " << __LINE__ << ", backgroundColor ("
<< string(image.backgroundColor()) << ") is incorrect"
<< endl;
}
// Test setting using hex color
image.backgroundColor("#00AAFF");
if ( !image.backgroundColor().isValid() )
{
++failures;
cout << "Line: " << __LINE__ << ", backgroundColor ("
<< string(image.backgroundColor())
<< ") is incorrectly invalid" << endl;
}
else
if ( string(image.backgroundColor()) != "#00AAFF" &&
string(image.backgroundColor()) != "#0000AAAAFFFF" &&
string(image.backgroundColor()) != "#00000000AAAAAAAAFFFFFFFF" &&
string(image.backgroundColor()) != "#0000000000000000AAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFF" )
{
++failures;
cout << "Line: " << __LINE__
<< ", backgroundColor ("
<< string(image.backgroundColor())
<< ") is incorrect"
<< endl;
}
//
// backgroundTexture
//
// Test default value
if ( image.backgroundTexture() != "" )
{
++failures;
cout << "Line: " << __LINE__ << ", backgroundTexture default ("
<< image.backgroundTexture()
<< ") is incorrect" << endl;
}
// Test setting/getting value
image.backgroundTexture("afile.jpg");
if ( image.backgroundTexture() != "afile.jpg" )
{
++failures;
cout << "Line: " << __LINE__ << ", backgroundTexture ("
<< image.backgroundTexture()
<< ") is incorrect" << endl;
}
// Test setting back to default
image.backgroundTexture("");
if ( image.backgroundTexture() != "" )
{
++failures;
cout << "Line: " << __LINE__
<< ", backgroundTexture ("
<< image.backgroundTexture()
<< ") failed to set to \"\"" << endl;
}
//
// baseColumns
//
if ( image.baseColumns() != columns )
{
++failures;
cout << "Line: " << __LINE__
<< ", baseColumns ("
<< image.baseColumns()
<< ") is not equal to "
<< columns
<< " as expected"
<< endl;
}
//
// baseFilename
//
// Base filename is color for xc images
if ( image.baseFilename() != "xc:#FF0000" &&
image.baseFilename() != "xc:#FFFF00000000" &&
image.baseFilename() != "xc:#FFFFFFFF0000000000000000" &&
image.baseFilename() != "xc:#FFFFFFFFFFFFFFFF00000000000000000000000000000000")
{
++failures;
cout << "Line: " << __LINE__
<< ", baseFilename ("
<< image.baseFilename()
<< ") is incorrect"
<< endl;
}
//
// baseRows
//
if ( image.baseRows() != rows )
{
++failures;
cout << "Line: " << __LINE__
<< ", baseRows ("
<< image.baseRows()
<< ") != rows ("
<< rows
<< ")"
<< endl;
}
//
// borderColor
//
if ( image.borderColor() != ColorRGB("#dfdfdf") )
{
++failures;
cout << "Line: " << __LINE__
<< ", borderColor default ("
<< string(image.borderColor())
<< ") is incorrect" << endl;
}
image.borderColor("#FF0000");
if ( image.borderColor() != Color("#FF0000") )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set borderColor ("
<< string(image.borderColor())
<< ")" << endl;
}
image.borderColor("black");
if ( image.borderColor() != Color("#000000") )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set borderColor ("
<< string(image.borderColor())
<< ")"
<< endl;
}
//
// boxColor
//
image.boxColor("#FF0000");
if ( image.boxColor() != Color("#FF0000") )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set boxColor ("
<< string(image.boxColor())
<< ")"
<< endl;
}
image.boxColor("black");
if ( image.boxColor() != Color("#000000") )
{
++failures;
cout << "Line: " << __LINE__
<< ", failed to set boxColor ("
<< string(image.boxColor())
<< ") to #000000"
<< endl;
}
//
// chromaBluePrimary
//
{
// Test default setting
double x, y, z;
image.chromaBluePrimary(&x, &y, &z);
if ( x == 0.0f || y == 0.0f )
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaBluePrimary x/y defaults are zero"
<< endl;
}
// Test set/get
image.chromaBluePrimary(50, 100, 150 );
image.chromaBluePrimary(&x, &y, &z);
if ( x != 50 || y != 100 || z != 150 )
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaBluePrimary x/y failed set/get" << endl;
}
}
//
// chromaGreenPrimary
//
{
// Test default setting
double x, y, z;
image.chromaGreenPrimary(&x, &y, &z);
if ( x == 0.0f || y == 0.0f )
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaGreenPrimary x/y defaults are zero" << endl;
}
// Test set/get
image.chromaGreenPrimary(50, 100, 150);
image.chromaGreenPrimary(&x, &y, &z);
if (x != 50 || y != 100 || z != 150)
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaGreenPrimary x/y failed set/get" << endl;
}
}
//
// chromaRedPrimary
//
{
// Test default setting
double x, y, z;
image.chromaRedPrimary(&x, &y, &z);
if ( x == 0.0f || y == 0.0f )
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaRedPrimary x/y defaults are zero" << endl;
}
// Test set/get
image.chromaRedPrimary(50, 100, 150);
image.chromaRedPrimary(&x, &y, &z);
if (x != 50 || y != 100 || z != 150)
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaRedPrimary x/y failed set/get" << endl;
}
}
//
// chromaWhitePoint
//
{
// Test default setting
double x, y, z;
image.chromaWhitePoint(&x, &y, &z);
if ( x == 0.0f || y == 0.0f )
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaWhitePoint x/y defaults are zero" << endl;
}
// Test set/get
image.chromaWhitePoint(50, 100, 150);
image.chromaWhitePoint(&x, &y, &z);
if (x != 50 || y != 100 || z != 150)
{
++failures;
cout << "Line: " << __LINE__
<< ", chromaWhitePoint x/y failed set/get" << endl;
}
}
//
// classType
//
if ( image.classType() != DirectClass )
{
++failures;
cout << "Line: " << __LINE__ << ", classType is not DirectClass" << endl;
}
//
// colorFuzz
//
// Test default
if ( image.colorFuzz() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", colorFuzz default is non-zero" << endl;
}
// Test set/get
image.colorFuzz( 2 );
if ( image.colorFuzz() != 2 )
{
++failures;
cout << "Line: " << __LINE__ << ", colorFuzz failed to set/get" << endl;
}
image.colorFuzz( 0 );
//
// columns
//
if ( image.columns() != columns )
{
++failures;
cout << "Line: " << __LINE__
<< ", columns is not equal to canvas image columns" << endl;
}
//
// comment
//
// Test default
if ( image.comment().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", comment default non-zero length" << endl;
}
// Test set/get
{
std::string comment("This is a comment.");
image.comment( comment );
if ( image.comment() != comment )
{
++failures;
cout << "Line: " << __LINE__ << ", comment set/get failed" << endl;
}
}
// Test resetting comment
image.comment( string() );
if ( image.comment().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", comment failed to reset" << endl;
}
//
// compressType
//
// Test default
if ( image.compressType() != UndefinedCompression )
{
++failures;
cout << "Line: " << __LINE__
<< ", compressType default is incorrect" << endl;
}
// Test set/get
image.compressType(RLECompression);
if ( image.compressType() != RLECompression )
{
++failures;
cout << "Line: " << __LINE__ << ", compressType set/get failed" << endl;
}
image.compressType(UndefinedCompression);
//
// density
//
{
// Test defaults
if ( image.density() != Point(72) )
{
++failures;
cout << "Line: " << __LINE__
<< ", density default is not 72x72 as expected" << endl;
}
// Test set/get
Point density(150,75);
image.density(density);
if ( image.density() != density )
{
++failures;
cout << "Line: " << __LINE__ << ", density set/get failed" << endl;
}
if ( image.xResolution() != 150 ||
image.yResolution() != 75 )
{
++failures;
cout << "Line: " << __LINE__ << ", density set/get failed" << endl;
}
image.density("72x72");
}
//
// Format specific defines
//
if (image.defineSet("foo","bar"))
{
++failures;
cout << "Line: " << __LINE__
<< ", define for foo:bar incorrectly reports set."
<< endl;
}
image.defineSet("foo","bar",true);
if (!image.defineSet("foo","bar"))
{
++failures;
cout << "Line: " << __LINE__
<< ", define for foo:bar incorrectly reports not set."
<< endl;
}
image.defineSet("foo","bar",false);
if (image.defineSet("foo","bar"))
{
++failures;
cout << "Line: " << __LINE__
<< ", define for foo:bar incorrectly reports set."
<< endl;
}
image.defineValue("foo","bar","value");
std::string value = image.defineValue("foo","bar");
if (image.defineValue("foo","bar") != "value")
{
++failures;
cout << "Line: " << __LINE__
<< ", define for foo:bar incorrectly reports value \""
<< value << "\""
<< endl;
}
image.defineSet("foo","bar",false);
if (image.defineSet("foo","bar"))
{
++failures;
cout << "Line: " << __LINE__
<< ", define for foo:bar incorrectly reports set."
<< endl;
}
//
// depth
//
if ( image.depth() != MAGICKCORE_QUANTUM_DEPTH )
{
++failures;
cout << "Line: " << __LINE__
<< ", depth ("
<< image.depth()
<< ") is not equal to " << MAGICKCORE_QUANTUM_DEPTH << endl;
}
//
// Directory
//
{
// Since this is not a montage image, simply verify error report
bool caughtException = false;
cout << "Testing throwing and catching exceptions. A program crash or a message" << endl
<< "that the exception was not caught indicates a test failure. A properly" << endl
<< "formatted exception message indicates success:" << endl;
try
{
//image.directory();
Magick::Image bad_image("foo");
}
catch ( Exception &exception_)
{
cout << "Caught exception, good!:" << endl
<< " \"" << exception_.what() << "\"" << endl;
caughtException = true;
}
if ( caughtException != true )
{
++failures;
cout << "failed to catch exception!" << endl;
}
}
//
// fileName
//
// Test default
if ( image.fileName() != string("xc:") + string(canvasColor) )
{
++failures;
cout << "Line: "
<< __LINE__
<< ", fileName ("
<< image.fileName()
<< ") is not canvas color ("
<< string(canvasColor)
<<") as expected" << endl;
}
// Set/get value
image.fileName("filename.jpg");
if ( image.fileName() != "filename.jpg" )
{
++failures;
cout << "Line: "
<< __LINE__
<< ", fileName ("
<< image.fileName()
<< ") failed to set/get" << endl;
}
image.fileName(canvasColor);
//
// fileSize
//
// Test default
if ( image.fileSize() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", fileSize ("
<< static_cast<ssize_t>(image.fileSize())
<< ") is not zero as expected" << endl;
}
//
// filterType
//
// Test default
if ( image.filterType() != UndefinedFilter )
{
++failures;
cout << "Line: " << __LINE__
<< ", filterType default ("
<< (int)image.filterType()
<< ") is incorrect" << endl;
}
// Test set/get
image.filterType( TriangleFilter );
if ( image.filterType() != TriangleFilter )
{
++failures;
cout << "Line: " << __LINE__ << ", filterType set/get failed"
<< endl;
}
//
// font
//
// Test set/get
image.font("helvetica");
if ( image.font() != "helvetica" )
{
++failures;
cout << "Line: " << __LINE__ << ", font set/get failed" << endl;
}
// Test set to null font
image.font( string() );
if ( image.font().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", font failed to unset" << endl;
}
//
// fontPointsize
//
// Test default
if ( image.fontPointsize() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", fontPointsize ("
<< image.fontPointsize()
<< ") is not default of 0 as expected"
<< endl;
}
// Test set/get
image.fontPointsize(10);
if ( image.fontPointsize() != 10 )
{
++failures;
cout << "Line: " << __LINE__
<< ", fontPointsize set/get failed" << endl;
}
image.fontPointsize(12);
//
// format
//
if ( image.format() != "Constant image uniform color" )
{
++failures;
cout << "Line: " << __LINE__
<< ", format (" << image.format() << ") is not expected value" << endl;
}
//
// gamma
//
if ( image.gamma() == 1.0f)
{
++failures;
cout << "Line: " << __LINE__
<< ", gamma correction is unity as expected" << endl;
}
//
// geometry
//
{
bool caughtException = false;
try
{
image.geometry();
}
catch ( Exception& )
{
caughtException = true;
}
if ( caughtException != true )
{
++failures;
cout << "Line: " << __LINE__
<< ", geometry failed to report missing image geometry";
}
}
//
// gifDisposeMethod
//
// Test default
if ( image.gifDisposeMethod() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", gifDisposeMethod default is not zero as expected" << endl;
}
// Test set/get
image.gifDisposeMethod(BackgroundDispose);
if ( image.gifDisposeMethod() != BackgroundDispose )
{
++failures;
cout << "Line: " << __LINE__
<< ", gifDisposeMethod set/get failed" << endl;
}
image.gifDisposeMethod(UndefinedDispose);
//
// interlaceType
//
// Test default
if ( image.interlaceType() != NoInterlace )
{
++failures;
cout << "Line: " << __LINE__
<< ", interlaceType default is not NoInterlace as expected" << endl;
}
// Test set/get
image.interlaceType( PlaneInterlace );
if ( image.interlaceType() != PlaneInterlace )
{
++failures;
cout << "Line: " << __LINE__ << ", interlaceType set/get failed" << endl;
}
image.interlaceType(NoInterlace);
//
// label
//
// Test default
if ( image.label().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", label default is not empty string as expected" << endl;
}
// Test set/get
image.label("How now brown cow?");
if ( image.label() != "How now brown cow?" )
{
++failures;
cout << "Line: " << __LINE__ << ", label set/get failed" << endl;
}
// Test set to default
image.label( string() );
if ( image.label().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", label failed to unset" << endl;
}
//
// strokeWidth
//
// Test default
if ( image.strokeWidth() != 1 )
{
++failures;
cout << "Line: " << __LINE__
<< ", strokeWidth default is not 1 as expected" << endl;
}
// Test set/get
image.strokeWidth(2);
if ( image.strokeWidth() != 2 )
{
++failures;
cout << "Line: " << __LINE__ << ", strokeWidth set/get failed" << endl;
}
image.strokeWidth(1);
//
// magick
//
// Test canvas default
if ( image.magick() != "XC" )
{
++failures;
cout << "Line: " << __LINE__
<< ", magick canvas default is not XC as expected" << endl;
}
// Test set/get
image.magick("GIF");
if ( image.magick() != "GIF" )
{
++failures;
cout << "Line: " << __LINE__ << ", magick set/get failed" << endl;
}
image.magick("XC");
//
// alpha
//
// Test default
if ( image.alpha() != false )
{
++failures;
cout << "Line: " << __LINE__
<< ", alpha default is not false as expected" << endl;
}
// Test set/get
image.alpha(true);
if ( image.alpha() != true )
{
++failures;
cout << "Line: " << __LINE__ << ", alpha set/get failed" << endl;
}
image.alpha(false);
//
// matteColor
//
// Test default
if ( image.matteColor() != Color("#BDBDBD") )
{
++failures;
cout << "Line: " << __LINE__
<< ", matteColor default is not #BDBDBD as expected" << endl;
}
// Test set/get
image.matteColor(ColorRGB(0.5,0.5,1));
if ( image.matteColor() != ColorRGB(0.5,0.5,1) )
{
++failures;
cout << "Line: " << __LINE__ << ", matteColor set/get failed" << endl;
}
// Test unset
image.matteColor( Color() );
image.matteColor("#BDBDBD");
//
// meanErrorPerPixel
//
if ( image.meanErrorPerPixel() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", meanErrorPerPixel is not zero as expected" << endl;
}
//
// montageGeometry
//
{
bool caughtException = false;
try
{
image.montageGeometry();
}
catch ( Exception& )
{
caughtException = true;
}
if ( caughtException != true )
{
++failures;
cout << "Line: " << __LINE__
<< ", montageGeometry failed to report missing montage geometry";
}
}
//
// monochrome
//
// Test default
if ( image.monochrome() != false )
{
++failures;
cout << "Line: " << __LINE__
<< ", monochrome is not false as expected" << endl;
}
// Test set/get
image.monochrome(true);
if ( image.monochrome() != true )
{
++failures;
cout << "Line: " << __LINE__ << ", monochrome get/set failed" << endl;
}
image.monochrome(false);
//
// normalizedMaxError
//
if ( image.normalizedMaxError() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ",normalizedMaxError is not zero as expected" << endl;
}
//
// normalizedMeanError
//
if ( image.normalizedMeanError() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", normalizedMeanError is not zero as expected" << endl;
}
//
// strokeColor
//
image.strokeColor(ColorRGB(0.5,0.5,1));
if ( image.strokeColor() != ColorRGB(0.5,0.5,1) )
{
++failures;
cout << "Line: " << __LINE__ << ", strokeColor ("
<< string(image.strokeColor())
<< ") set/get failed" << endl;
}
//
// fillColor
//
image.fillColor(ColorRGB(0.5,0.5,1));
if ( image.fillColor() != ColorRGB(0.5,0.5,1) )
{
++failures;
cout << "Line: " << __LINE__ << ", fillColor ("
<< string(image.fillColor())
<< ") set/get failed" << endl;
}
//
// pixelColor
//
// Test default
if ( image.pixelColor(40,60) != string(canvasColor) )
{
++failures;
cout << "Line: " << __LINE__ << ", pixelColor default ("
<< string(image.pixelColor(40,60))
<< ") is not canvas color ("
<< string(canvasColor)
<< ") as expected" << endl;
}
// Test set/get
image.pixelColor(40,60, ColorRGB(0.5,1,1));
if ( image.pixelColor(40,60) != ColorRGB(0.5,1,1) )
{
++failures;
cout << "Line: " << __LINE__ << ", pixelColor set/get failed" << endl;
}
//
// page
//
// Test default
if ( image.page() != Geometry(640,480,0,0) )
{
++failures;
cout << "Line: " << __LINE__ << ", page default "
<< "(" << string(image.page()) << ")"
<< " is not 640x480 as expected" << endl;
}
// Test set/get
image.page("letter+43+43>");
if ( image.page() != "612x792+43+43" )
{
++failures;
cout << "Line: " << __LINE__
<< ", page set/get failed (" << string(image.page()) << ")" << endl;
}
//
// quality
//
// Test default
if ( image.quality() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", quality default is not 0 as expected" << endl;
}
// Test set/get
image.quality(65);
if ( image.quality() != 65 )
{
++failures;
cout << "Line: " << __LINE__ << ", quality set/get failed" << endl;
}
image.quality(0);
//
// quantizeColors
//
// Test default
if ( image.quantizeColors() != 256 )
{
++failures;
cout << "Line: " << __LINE__
<< ", quantizeColors is not 256 as expected" << endl;
}
// Test set/get
image.quantizeColors(200);
if ( image.quantizeColors() != 200 )
{
++failures;
cout << "Line: " << __LINE__ << ", quantizeColors set/get failed" << endl;
}
image.quantizeColors(0);
//
// quantizeColorSpace
//
// Test default
if ( image.quantizeColorSpace() != UndefinedColorspace )
{
++failures;
cout << "Line: " << __LINE__
<< ", quantizeColorSpace is not RGBColorspace as expected" << endl;
}
// Test set/get
image.quantizeColorSpace(YIQColorspace);
if ( image.quantizeColorSpace() != YIQColorspace )
{
++failures;
cout << "Line: " << __LINE__
<< ", quantizeColorSpace set/get failed" << endl;
}
image.quantizeColorSpace(RGBColorspace);
//
// quantizeDither
//
// Test default
if ( image.quantizeDither() == false )
{
++failures;
cout << "Line: " << __LINE__
<< ", quantizeDither is not false as expected" << endl;
}
// Test set/get
image.quantizeDither(false);
if ( image.quantizeDither() != false )
{
++failures;
cout << "Line: " << __LINE__
<< ", quantizeDither get/set failed" << endl;
}
image.quantizeDither(true);
//
// quantizeTreeDepth
//
if ( image.quantizeTreeDepth() != 0 )
{
++failures;
cout << "Line: " << __LINE__ << ", quantizeTreeDepth default is "
<< image.quantizeTreeDepth()
<< " rather than zero as expected" << endl;
}
image.quantizeTreeDepth(7);
if ( image.quantizeTreeDepth() != 7 )
{
++failures;
cout << "Line: " << __LINE__
<< ", quantizeTreeDepth set/get failed" << endl;
}
image.quantizeTreeDepth(8);
//
// renderingIntent
//
if ( image.renderingIntent() == UndefinedIntent )
{
++failures;
cout << "Line: " << __LINE__
<< ", renderingIntent default is UndefinedIntent as expected"
<< endl;
}
image.renderingIntent(PerceptualIntent);
if ( image.renderingIntent() != PerceptualIntent )
{
++failures;
cout << "Line: " << __LINE__
<< ", renderingIntent set/get failed" << endl;
}
image.renderingIntent(UndefinedIntent);
//
// resolutionUnits
//
if ( image.resolutionUnits() != UndefinedResolution )
{
++failures;
cout << "Line: " << __LINE__
<< ", resolutionUnits default is not UndefinedResolution as expected"
<< endl;
}
image.resolutionUnits(PixelsPerCentimeterResolution);
if ( image.resolutionUnits() != PixelsPerCentimeterResolution )
{
++failures;
cout << "Line: " << __LINE__
<< ", resolutionUnits set/get failed" << endl;
}
image.resolutionUnits(UndefinedResolution);
//
// rows
//
if ( image.rows() != rows )
{
++failures;
cout << "Line: " << __LINE__
<< ", rows is canvas rows as expected" << endl;
}
//
// scene
//
if ( image.scene() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", scene default is not zero as expected" << endl;
}
image.scene(5);
if ( image.scene() != 5 )
{
++failures;
cout << "Line: " << __LINE__
<< ", scene set/get failed" << endl;
}
image.scene(0);
//
// signature
//
if (
( image.signature() != "6b08f7559b92760e8945b924f514a2e997753eb4408ddf571dd5222a782b8b48") &&
( image.signature() != "5e32612a0a3f2f1632d135f8c2df360604b0b84e9f082ddc20efbb0de752a53e") &&
( image.signature() != "dba5480face4d9eb973a116fe32ef37a7b47211e563900d21f47d6f0904aba22") &&
( image.signature() != "eccb7a8ac230b0deb76c8dd10ddeeb76a0918cbe6e3469d2d9f223d35c66498b") &&
( image.signature() != "a0747a8a5a0e6a1ec960ab8994986ba087d518db97db6f17e7bb4da3bbc3c91d") &&
( image.signature() != "6857675cd7d967e1e3ff094e1b3e5f4bb3fb9ba2557eb6d083d37881db0a2039")
)
{
++failures;
cout << "Line: " << __LINE__ << ", signature ("
<< image.signature()
<< ") is incorrect" << endl;
image.display();
}
//
// size
//
if ( image.size() != geometry )
{
++failures;
cout << "Line: " << __LINE__ << ", size ("
<< string(image.size())
<< ") is not equal to geometry ("
<< string(geometry)
<< ")"
<< endl;
}
image.size("800x600");
if ( image.size() != Geometry("800x600") )
{
++failures;
cout << "Line: " << __LINE__ << ", size set/get failed" << endl;
}
image.size( geometry );
//
// subImage
//
if ( image.subImage() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", subImage default is not zero as expected" << endl;
}
image.subImage(5);
if ( image.subImage() != 5 )
{
++failures;
cout << "Line: " << __LINE__
<< ", subImage set/get failed" << endl;
}
image.subImage(0);
//
// subRange
//
if ( image.subRange() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", subRange default is not zero as expected" << endl;
}
image.subRange(5);
if ( image.subRange() != 5 )
{
++failures;
cout << "Line: " << __LINE__
<< ", subRange set/get failed" << endl;
}
image.subRange(0);
//
// totalColors
//
if ( image.totalColors() != 2 )
{
++failures;
cout << "Line: " << __LINE__ << ", totalColors is " << image.totalColors()
<< " rather than 2 as expected" << endl;
}
//
// type
//
image.type(PaletteType);
if ( image.type() != PaletteType )
{
++failures;
cout << "Line: " << __LINE__
<< ", type is not PaletteType as expected. Reported type "
<< (int) image.type() << endl;
}
//
// verbose
//
if ( image.verbose() != false )
{
++failures;
cout << "Line: " << __LINE__
<< ", verbose is not false as expected" << endl;
}
//
// x11Display
//
if ( image.x11Display().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", x11Display default is not empty string as expected" << endl;
}
image.x11Display(":0.0");
if ( image.x11Display() != ":0.0" )
{
++failures;
cout << "Line: " << __LINE__
<< ", x11Display set/get failed" << endl;
}
image.x11Display( string() );
if ( image.x11Display().length() != 0 )
{
++failures;
cout << "Line: " << __LINE__
<< ", x11Display failed to unset" << endl;
}
//
// xResolution
//
if ( image.xResolution() != 72 )
{
++failures;
cout << "Line: " << __LINE__
<< ", xResolution default (" << image.xResolution()
<< ") is not zero as expected" << endl;
}
//
// yResolution
//
if ( image.yResolution() != 72 )
{
++failures;
cout << "Line: " << __LINE__
<< ", yResolution default (" << image.yResolution()
<< ") is not zero as expected" << endl;
}
}
catch( Exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
catch( exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
if ( failures )
{
cout << failures << " failures" << endl;
return 1;
}
return 0;
}