Sha256: 48f6082af07f1c199216cc049c2b4a8ffca5d2e383a6b789cc87dfb6a4f088f4
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
$: << File.dirname(__FILE__)+'/../lib' require 'tagformula/parser' describe Tagformula::Parser do describe '#parse' do it "parses simple formulas" do formula = Tagformula::Parser.parse("alpha & beta") expect(formula.required_tags).to include('alpha', 'beta') expect(formula.required_tags).not_to include('gamma') expect(formula.matches?(['alpha'])).to be_false expect(formula.matches?(['alpha', 'beta'])).to be_true end it "parses more negated tag formulas" do formula = Tagformula::Parser.parse("alpha & ! beta") expect(formula.required_tags).to include('alpha') expect(formula.required_tags).not_to include('beta') expect(formula.matches?(['alpha', 'beta'])).to be_false expect(formula.matches?(['alpha'])).to be_true end it "fails on invalid formulas" do # Unclosed bracket expect { Tagformula::Parser.parse("(alpha & beta") }.to raise_error # Missing operator expect { Tagformula::Parser.parse("alpha & beta gamma") }.to raise_error # Empty group expect { Tagformula::Parser.parse("() & alpha & beta") }.to raise_error end it "parses tags with periods" do formula = Tagformula::Parser.parse("alpha.beta | gamma.delta") expect(formula.required_tags).to include('alpha.beta') expect(formula.matches?(['alpha.beta'])).to be_true expect(formula.matches?(['epsilon'])).to be_false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tagformula-0.0.1 | spec/formula_spec.rb |