Class: TestBayes

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/test/unit/bayes_test.rb

Instance Method Summary collapse

Instance Method Details

#setupObject



4
5
6
# File 'lib/test/unit/bayes_test.rb', line 4

def setup
  @bayes = OmniCat::Classifiers::Bayes.new
end

#test_add_categoryObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/test/unit/bayes_test.rb', line 8

def test_add_category
  @bayes.add_category "neutral"
  assert_not_nil(@bayes.categories["neutral"])
  assert_equal(
    ["neutral"],
    @bayes.categories.keys
  )
  assert_equal(
    0,
    @bayes.categories["neutral"].doc_count
  )
  assert_equal(
    {},
    @bayes.categories["neutral"].tokens
  )
  assert_equal(
    0,
    @bayes.categories["neutral"].token_count
  )
end

#test_add_category_that_already_existsObject



29
30
31
32
# File 'lib/test/unit/bayes_test.rb', line 29

def test_add_category_that_already_exists
  @bayes.add_category "neutral"
  assert_raise(StandardError) { @bayes.add_category "neutral" }
end

#test_classifyObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/test/unit/bayes_test.rb', line 55

def test_classify
  @bayes.add_category "positive"
  @bayes.add_category "negative"
  @bayes.train("positive", "good job")
  @bayes.train("negative", "bad work")
  assert_equal(
    "positive",
    @bayes.classify("very good position for this sentence").category[:name]
  )
  assert_equal(
    "negative",
    @bayes.classify("bad words").category[:name]
  )
end

#test_classify_with_insufficient_categoriesObject



82
83
84
# File 'lib/test/unit/bayes_test.rb', line 82

def test_classify_with_insufficient_categories
  assert_raise(StandardError) { @bayes.classify "blank" }
end

#test_initialize_with_hashObject



70
71
72
73
74
75
76
77
78
79
80
# File 'lib/test/unit/bayes_test.rb', line 70

def test_initialize_with_hash
  bayes1 = ::OmniCat::Classifiers::Bayes.new
  bayes1.add_category "positive"
  bayes1.add_category "negative"
  bayes1.train("positive", "good job")
  bayes1.train("negative", "bad work")
  h1 = bayes1.to_hash

  bayes2 = ::OmniCat::Classifiers::Bayes.new(h1)
  assert_equal(h1, bayes2.to_hash)
end

#test_train_missing_categoryObject



51
52
53
# File 'lib/test/unit/bayes_test.rb', line 51

def test_train_missing_category
  assert_raise(StandardError) { @bayes.train "neutral", "how are you?" }
end

#test_train_valid_categoryObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/test/unit/bayes_test.rb', line 34

def test_train_valid_category
  @bayes.add_category "neutral"
  @bayes.train "neutral", "how are you?"
  assert_equal(
    1,
    @bayes.categories["neutral"].doc_count
  )
  assert_equal(
    {"how" => 1, "are" => 1, "you" => 1},
    @bayes.categories["neutral"].tokens
  )
  assert_equal(
    3,
    @bayes.categories["neutral"].token_count
  )
end