Sha256: 85f1869931aad451ae5b3d9019b5209c38f1bee07c90aacac9075c38d673fc66

Contents?: true

Size: 879 Bytes

Versions: 19

Compression:

Stored size: 879 Bytes

Contents

require 'spec_helper'
module Finitio
  module Syntax
    describe Expr, "free_variables" do

      def fv(src)
        Syntax.parse(src, { root: :expr, memoize: true }).free_variables
      end

      context "on literals" do

        it 'returns an empty array' do
          expect(fv("true")).to eq([])
        end
      end

      context "on a single identifier" do

        it 'works' do
          expect(fv("foo")).to eq(["foo"])
        end
      end
        
      context "on a comparison" do

        it 'works' do
          expect(fv("foo == bar")).to eq(["foo", "bar"])
        end
      end

      context "on a function call" do

        it 'works' do
          expect(fv("foo(bar)")).to eq(["bar"])
        end
      end

      context "on a OO call" do

        it 'works' do
          expect(fv("foo.bar")).to eq(["foo"])
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
finitio-0.12.0 spec/syntax/expr/test_free_variables.rb
finitio-0.11.4 spec/syntax/expr/test_free_variables.rb
finitio-0.11.3 spec/syntax/expr/test_free_variables.rb
finitio-0.11.2 spec/syntax/expr/test_free_variables.rb
finitio-0.11.1 spec/syntax/expr/test_free_variables.rb
finitio-0.10.0 spec/syntax/expr/test_free_variables.rb
finitio-0.9.1 spec/syntax/expr/test_free_variables.rb
finitio-0.9.0 spec/syntax/expr/test_free_variables.rb
finitio-0.8.0 spec/syntax/expr/test_free_variables.rb
finitio-0.7.0 spec/syntax/expr/test_free_variables.rb
finitio-0.7.0.pre.rc4 spec/syntax/expr/test_free_variables.rb
finitio-0.7.0.pre.rc3 spec/syntax/expr/test_free_variables.rb
finitio-0.7.0.pre.rc2 spec/syntax/expr/test_free_variables.rb
finitio-0.7.0.pre.rc1 spec/syntax/expr/test_free_variables.rb
finitio-0.6.1 spec/syntax/expr/test_free_variables.rb
finitio-0.6.0 spec/syntax/expr/test_free_variables.rb
finitio-0.5.2 spec/syntax/expr/test_free_variables.rb
finitio-0.5.1 spec/syntax/expr/test_free_variables.rb
finitio-0.5.0 spec/syntax/expr/test_free_variables.rb