Sha256: 4611f906708ca2315680642e5b5b2edf6fd9ea0edb9ea4af5d769422563ba2cc

Contents?: true

Size: 1.57 KB

Versions: 4

Compression:

Stored size: 1.57 KB

Contents

require_relative '../test-util'

describe 'Model::Assignment' do
  it 'should be equal' do
    x1 = Assignment.new(Variable.new("X"), PioneString.new("a"))
    x2 = Assignment.new(Variable.new("X"), PioneString.new("a"))
    x1.should.be.equal x2
  end

  it 'should not be equal' do
    x1 = Assignment.new(Variable.new("X"), PioneString.new("a"))
    x2 = Assignment.new(Variable.new("X"), PioneString.new("b"))
    y1 = Assignment.new(Variable.new("Y"), PioneString.new("a"))
    y2 = Assignment.new(Variable.new("Y"), PioneString.new("b"))
    x1.should.not.be.equal x2
    x1.should.not.be.equal y1
    x1.should.not.be.equal y2
  end

  it 'should push variable and value into variable table' do
    Assignment.new(
      Variable.new("X"),
      PioneString.new("a")
    ).eval(VariableTable.new).should == PioneString.new("a")
  end

  it 'should evaluate the value' do
    vtable = VariableTable.new
    Assignment.new(
      Variable.new("X"),
      Message.new("as_string", 1.to_pione)
    ).eval(vtable)
    Variable.new("X").eval(vtable).should == "1".to_pione
  end

  it 'should update variable table' do
    vtable = VariableTable.new
    Assignment.new(
      Variable.new("X"),
      "a".to_pione
    ).eval(vtable).should == "a".to_pione
    vtable.get(Variable.new("X")).should == "a".to_pione
    Assignment.new(
      Variable.new("Y"),
      Variable.new("Z")
    ).eval(vtable).should == Variable.new("Z")
    vtable.get(Variable.new("Y")).should == Variable.new("Z")
    vtable.set(Variable.new("Z"), "b".to_pione)
    vtable.get(Variable.new("Y")).should == "b".to_pione
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pione-0.1.3 test/model/spec_assignment.rb
pione-0.1.2 test/model/spec_assignment.rb
pione-0.1.1 test/model/spec_assignment.rb
pione-0.1.0 test/model/spec_assignment.rb