Esempio n. 1
0
	Atom a1;
	Atom a2;
	Bond b1, b2;
	b1.setFirstAtom(&a1);
	TEST_EQUAL(b1.getFirstAtom(), &a1);
	b1.setFirstAtom(&a2);
	TEST_EQUAL(b1.getFirstAtom(), &a2);
RESULT		

CHECK(Bond(const String& name, Atom& first, Atom& second, Order order = BALL_BOND_DEFAULT_ORDER, Type type = BALL_BOND_DEFAULT_TYPE) throw(TooManyBonds))
	Atom a1;
	Atom a2;
	Bond b1("name", a1, a2, 1, 2);
	TEST_EQUAL(b1.getName(), "name")
	TEST_EQUAL(b1.getFirstAtom(), &a1)
	TEST_EQUAL(b1.getSecondAtom(), &a2)
	TEST_EQUAL(b1.getOrder(), 1)
	TEST_EQUAL(b1.getType(), 2)
RESULT

CHECK(static Bond* createBond(Bond& bond, Atom& first, Atom& second) throw(TooManyBonds))
	Atom a1;
	Atom a2;
	Atom a3;
	Bond b1;
	Bond b2;

	TEST_NOT_EQUAL(b1.createBond(b1, a2, a1), 0)
	TEST_EQUAL(a2.countBonds(), 1);
	TEST_EQUAL(b1.getFirstAtom(), &a1);
	TEST_EQUAL(b1.getSecondAtom(), &a2);
Esempio n. 2
0
	void MolecularInformation::getName_(Composite& composite)
	{
		String temp = "UNKNOWN";
		
		switch(type_)
		{
			case TYPE__BOND:
			{
				temp.clear();

				Bond* bond = RTTI::castTo<Bond>(composite);
				Atom* a1 = (Atom*) bond->getFirstAtom();
				Atom* a2 = (Atom*) bond->getSecondAtom();

				temp = getBondAtomName_(a1) + " -> " + getBondAtomName_(a2);
			}
			break;

			case TYPE__SYSTEM:
			{
				System* system = RTTI::castTo<System>(composite);
				temp = system->getName(); 			
			}
			break;
			
			case TYPE__RESIDUE:
			{
				Residue* residue = RTTI::castTo<Residue>(composite);
				temp = residue->getName();
				temp += " ";
				temp += residue->getID();
			}
			break;
			
			case TYPE__MOLECULE:
			case TYPE__PROTEIN:
			case TYPE__CHAIN:
			case TYPE__FRAGMENT:
			case TYPE__SECONDARY_STRUCTURE:
			{
				AtomContainer* atom_container = RTTI::castTo<AtomContainer>(composite);
				temp = atom_container->getName();
			}
			break;

			case TYPE__ATOM:
			{
				Atom* atom = RTTI::castTo<Atom>(composite);
				temp = atom->getName();
			}
			break;
			
			default:
				break;
		}
		
		if (type_ == TYPE__SECONDARY_STRUCTURE)
		{
			const SecondaryStructure* ss = dynamic_cast<SecondaryStructure*>(&composite);
			if (ss != 0)
			{
				switch (ss->getType())
				{
					case SecondaryStructure::HELIX:
						temp += " Helix"; 
						break;
					case SecondaryStructure::TURN:
						temp += " Turn";
						break;
					case SecondaryStructure::STRAND:
						temp += " Strand";
						break;
					case SecondaryStructure::COIL:
						temp += " Coil";
						break;
					default:
						temp += " Unknown";
				}
			}
			else
			{
				temp += " Unknown";
			}
		}
		else
		{
			if (temp == "")
			{
				temp = "<";
				temp += type_name_;
				temp += ">";		
			}
		}
		
		name_ = temp;
	}