spec/wordnet/word_spec.rb in wordnet-1.0.0.pre.136 vs spec/wordnet/word_spec.rb in wordnet-1.0.0.pre.139
- old
+ new
@@ -23,35 +23,110 @@
describe WordNet::Word, :requires_database => true do
include WordNet::SpecHelpers
before( :all ) do
setup_logging( :fatal )
- @lexicon = WordNet::Lexicon.new
end
- before( :each ) do
- # 'run'
- @word = @lexicon[ 113377 ]
- end
-
after( :all ) do
reset_logging()
end
- it "knows what senses it has" do
- senses = @word.senses
- senses.should be_an( Array )
- senses.should have( 57 ).members
- senses.first.should be_a( WordNet::Sense )
+ let( :lexicon ) { WordNet::Lexicon.new }
+
+
+ context "the Word for 'run'" do
+
+ let( :word ) { lexicon[113377] }
+
+ it "knows what senses it has" do
+ senses = word.senses
+ senses.should be_an( Array )
+ senses.should have( 57 ).members
+ senses.first.should be_a( WordNet::Sense )
+ end
+
+ it "knows what synsets it has" do
+ synsets = word.synsets
+
+ # Should have one synset per sense
+ synsets.should have( word.senses.length ).members
+ synsets.first.senses.should include( word.senses.first )
+ end
+
+ it "has a dataset for selecting noun synsets" do
+ word.nouns.should be_a( Sequel::Dataset )
+ word.nouns.should have( 16 ).members
+ ss = word.nouns.all
+ ss.should include(
+ lexicon[ :run, 'sequence' ],
+ lexicon[ :run, 'baseball' ],
+ lexicon[ :run, 'act of running' ],
+ lexicon[ :run, 'testing' ]
+ )
+ end
+
+ it "has a dataset for selecting verb synsets" do
+ word.verbs.should be_a( Sequel::Dataset )
+ word.verbs.should have( 41 ).members
+ ss = word.verbs.all
+ ss.should include(
+ lexicon[ :run, 'compete' ],
+ lexicon[ :run, 'be diffused' ],
+ lexicon[ :run, 'liquid' ],
+ lexicon[ :run, 'move fast' ]
+ )
+ end
+
end
- it "knows what synsets it has" do
- senses = @word.senses
- synsets = @word.synsets
- synsets.should have( senses.length ).members
- synsets.first.senses.should include( senses.first )
+ context "the Word for 'light'" do
+
+ let( :word ) { lexicon[77458] }
+
+ it "has a dataset for selecting adjective synsets" do
+ word.adjectives.should be_a( Sequel::Dataset )
+ word.adjectives.should have( 8 ).members
+ ss = word.adjectives.all
+ ss.should include(
+ lexicon[ :light, 'weight' ],
+ lexicon[ :light, 'emit', :adjective ],
+ lexicon[ :light, 'color' ]
+ )
+ end
+
+ it "has a dataset for selecting adjective-satellite synsets" do
+ word.adjective_satellites.should be_a( Sequel::Dataset )
+ word.adjective_satellites.should have( 17 ).members
+ ss = word.adjective_satellites.all
+ ss.should include(
+ lexicon[ :light, 'soil' ],
+ lexicon[ :light, 'calories' ],
+ lexicon[ :light, 'entertainment' ]
+ )
+ end
+
+ end
+
+
+ context "the Word for 'lightly'" do
+
+ let( :word ) { lexicon[77549] }
+
+ it "has a dataset for selecting adverb synsets" do
+ word.adverbs.should be_a( Sequel::Dataset )
+ word.adverbs.should have( 7 ).members
+ ss = word.adverbs.all
+ ss.should include(
+ lexicon[ :lightly, 'indifference' ],
+ lexicon[ :lightly, 'indulging' ],
+ lexicon[ :lightly, 'little weight' ],
+ lexicon[ :lightly, 'quantity' ]
+ )
+ end
+
end
end