Sha256: 47a82ac19edccb9052a77dc2a3766a57314abeed42427152e1b2ba60174ec9a0

Contents?: true

Size: 1.88 KB

Versions: 5

Compression:

Stored size: 1.88 KB

Contents

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubabel-0.4.3 spec/rubabel/bond_spec.rb
rubabel-0.4.2 spec/rubabel/bond_spec.rb
rubabel-0.4.1 spec/rubabel/bond_spec.rb
rubabel-0.4.0 spec/rubabel/bond_spec.rb
rubabel-0.3.0 spec/rubabel/bond_spec.rb