//-*****************************************************************************
void testProps()
{
    Alembic::Util::int32_t intVal = 15;

    float32_t f0 = 67.3f;

    size_t floatArraySize = 14;

    chrono_t t0 = 0.25;

    chrono_t dt = 1.0 / 24.0;

    DataType floatDT( kFloat32POD, 1 );

    Dimensions dims( floatArraySize );

    std::string archiveName = "constantPropsTest.abc";

    std::vector<float32_t> fvals;

    for ( size_t i = 0 ; i < floatArraySize ; i++ )
    {
        fvals.push_back( f0 + i );
    }


    {
        AO::WriteArchive w;
        ArchiveWriterPtr a = w(archiveName, AbcA::MetaData());
        std::vector < chrono_t > samps(1, t0);
        AbcA::TimeSampling ts(TimeSamplingType(dt), samps);
        a->addTimeSampling(ts);

        ObjectWriterPtr top = a->getTop();
        ObjectWriterPtr child = top->createChild(
            ObjectHeader( "wow", MetaData() ) );

        CompoundPropertyWriterPtr props = child->getProperties();

        ScalarPropertyWriterPtr intProp = props->createScalarProperty("intProp",
            MetaData(), DataType( kInt32POD, 1 ), 1);

        ArrayPropertyWriterPtr floatArrayProp = props->createArrayProperty(
            "floatArrayProp", MetaData(), DataType( kFloat32POD, 1 ), 1);

        intProp->setSample( &intVal );

        for ( size_t i = 0 ; i < 500 ; i++ )
        {
            floatArrayProp->setSample(ArraySample( &(fvals.front()), floatDT,
                dims ) );
        }

    }

    {
        AO::ReadArchive r;
        ArchiveReaderPtr a = r( archiveName );
        ObjectReaderPtr top = a->getTop();
        TESTING_ASSERT( top->getNumChildren() == 1 );

        AbcA::ObjectReaderPtr child = top->getChild(0);
        TESTING_ASSERT( child->getName() == "wow" );

        CompoundPropertyReaderPtr props = child->getProperties();

        TESTING_ASSERT( props->getNumProperties() == 2 );

        ScalarPropertyReaderPtr intProp = props->getScalarProperty( "intProp" );
        TESTING_ASSERT( intProp->isConstant() );
        TESTING_ASSERT( intProp->getNumSamples() == 1 );

        ArrayPropertyReaderPtr floatArrayProp = \
            props->getArrayProperty( "floatArrayProp" );

        TESTING_ASSERT( floatArrayProp->getNumSamples() == 500 );
        TESTING_ASSERT( floatArrayProp->isConstant() );

    }
}