require 'spec_helper' require 'rubabel/molecule' require 'rubabel/bond' describe Rubabel::Bond do describe 'cholesterol from sdf' do subject { Rubabel::Molecule.from_file( TESTFILES + '/cholesterol.sdf' ).bonds.first } it 'is a Rubabel::Bond' do subject.should be_a(Rubabel::Bond) end it 'knows what atoms it includes' do subject.each_atom do |atom| atom.should be_a(Rubabel::Atom) end subject.atoms.size.should == 2 end end describe 'manipulating the bond order' do subject { mol = Rubabel['CC'] mol[0].get_bond(mol[1]) } specify '#inc! increases the bond order' do subject.order.should == 1 subject.inc! subject.order.should == 2 end specify '#inc!(n) increases the bond order by n' do subject.order.should == 1 subject.inc!(2) subject.order.should == 3 end specify '#inc!(-n) will not go below 0' do subject.order.should == 1 subject.inc!(-1) subject.order.should == 0 subject.inc!(-1) subject.order.should == 0 end specify '#+(n) will add but not return same ruby object (underlying ob object same)' do other = subject + 1 other.order.should == 2 subject.order.should == 2 subject.should_not equal(other) #other.object_id.should_not == subject.object_id end specify '#+(n) will add but not return same ruby object (underlying ob object same)' do another_var = subject another_var += 1 another_var.order.should == 2 subject.order.should == 2 subject.ob.should equal(another_var.ob) end specify '#dec!' do subject.dec! subject.order.should == 0 end specify '#-(n)' do var = subject var.inc! var.order.should == 2 var -= 2 var.order.should == 0 var -= 1 var.order.should == 0 end end end