Sha256: 3c36b8a975f313847f562882bc2bb283219da53092b09c9b7e9ec52ba52377de
Contents?: true
Size: 1.32 KB
Versions: 3
Compression:
Stored size: 1.32 KB
Contents
require 'helper.rb' module BibTeX class LexerTest < Minitest::Spec it 'correctly scans a string literal' do assert_equal Lexer.new.analyse(%q(@string{ x = "foo" })).symbols, [:AT,:STRING,:LBRACE,:NAME,:EQ,:STRING_LITERAL,:RBRACE,false] end it 'strips line breaks by default' do Lexer.new.analyse(%Q(@string{ x = "foo\nbar" })).stack[-3].must_be :==, [:STRING_LITERAL, 'foo bar'] end it 'strips whitespace after line breaks by default' do Lexer.new.analyse(%Q(@string{ x = "foo\n bar" })).stack[-3].must_be :==, [:STRING_LITERAL, 'foo bar'] end it 'matches KEY tokens' do Lexer.new.analyse("@misc{foo, }").symbols.must_be :==, [:AT, :NAME, :LBRACE, :KEY, :RBRACE, false] end it 'matches KEY tokens after whitespace' do Lexer.new.analyse("@misc{ foo, }").symbols.must_be :==, [:AT, :NAME, :LBRACE, :KEY, :RBRACE, false] end it "doesn't start a comment for types starting with but not equal @comment" do Lexer.new.analyse("@commentary{staudinger, }").symbols.must_be :==, [:AT, :NAME, :LBRACE, :KEY, :RBRACE, false] end it "doesn't start a preamble for types starting with but not equal @preamble" do Lexer.new.analyse("@preamblestring{ preamble }").symbols.must_be :==, [:AT, :NAME, :LBRACE, :NAME, :RBRACE, false] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bibtex-ruby-2.3.4 | test/bibtex/test_lexer.rb |
bibtex-ruby-2.3.3 | test/bibtex/test_lexer.rb |
bibtex-ruby-2.3.2 | test/bibtex/test_lexer.rb |