void test_empty_instance()
 {
     TS_ASSERT_EQUALS(0, mstru->countSites());
     TS_ASSERT_EQUALS(mstru.get(), mstru->clone().get());
     TS_ASSERT_EQUALS(mstru, emptyStructureAdapter());
     TS_ASSERT_THROWS(mstru->siteAtomType(0), std::out_of_range);
     TS_ASSERT_THROWS(mstru->siteCartesianPosition(0),
                      std::out_of_range);
     TS_ASSERT_THROWS(mstru->siteMultiplicity(0), std::out_of_range);
     TS_ASSERT_THROWS(mstru->siteOccupancy(0), std::out_of_range);
     TS_ASSERT_THROWS(mstru->siteAnisotropy(0), std::out_of_range);
     TS_ASSERT_THROWS(mstru->siteCartesianPosition(0),
                      std::out_of_range);
 }
 void test_siteCartesianPosition()
 {
     const double eps = 1.0e-5;
     R3::Vector rCa = m_catio3->siteCartesianPosition(4);
     TS_ASSERT_DELTA(0.03486, rCa[0], eps);
     TS_ASSERT_DELTA(0.19366, rCa[1], eps);
     TS_ASSERT_DELTA(1.90975, rCa[2], eps);
 }