1
# vim: set fileencoding=utf8 :
2
# Solfege - free ear training software
3
# Copyright (C) 2009 Tom Cato Amundsen
4
# License is GPL, see file COPYING
6
from __future__ import absolute_import
8
from solfege import statistics
9
from solfege import application
10
from solfege import lessonfile
11
from solfege import optionparser
12
from solfege.exercises import idbyname
14
class TestDB(unittest.TestCase):
17
s2 = "#comment\nvar = 1"
18
s3 = "#comment\n\nvar = 1"
19
self.assertEqual(statistics.hash_lessonfile_text(s1),
20
statistics.hash_lessonfile_text(s2))
21
self.assertEqual(statistics.hash_lessonfile_text(s1),
22
statistics.hash_lessonfile_text(s3))
24
opt_parser = optionparser.SolfegeOptionParser()
25
options, args = opt_parser.parse_args()
26
a = application.SolfegeApp(options)
27
t = idbyname.Teacher('idbyname')
28
t.set_lessonfile(u'solfege:lesson-files/chord-min-major')
29
t.m_statistics.reset_session()
30
t.m_statistics.add_wrong('minor', 'major')
31
t.m_statistics.add_wrong('minor', 'major')
32
t.m_statistics.add_wrong('minor', 'minor')
33
t.m_statistics.add_correct('major')
34
for seconds in (-1, 0, 10000):
35
self.assertEquals(t.m_statistics.get_num_correct_for_key(seconds, 'minor'), 1)
36
self.assertEquals(t.m_statistics.get_num_guess_for_key(seconds, 'minor'), 3)
37
def test_store_variables(self):
39
db.set_variable('database_version', 2)
40
self.assertEquals(db.get_variable('database_version'), 2)
41
db.set_variable('database_version', 3)
42
self.assertEquals(db.get_variable('database_version'), 3)
43
self.assertRaises(db.VariableTypeError,
44
lambda: db.set_variable('database_version', '3'))
45
db.set_variable('textvar', u'this is кофе')
46
self.assertEquals(db.get_variable('textvar'), u'this is кофе')
47
self.assertEquals(db.get_variable('textvar'), 'this is кофе')
48
self.assertRaises(db.VariableTypeError,
49
lambda: db.set_variable('textvar', 5))
50
self.assertRaises(db.VariableTypeError,
51
lambda: db.set_variable('textvar', 5.5))
52
self.assertRaises(db.VariableTypeError,
53
lambda: db.set_variable('textvar', True))
54
self.assertRaises(db.VariableTypeError,
55
lambda: db.set_variable('str_text', 'string'))
56
db.set_variable('known_number', 3.14159265)
57
self.assertEquals(db.get_variable('known_number'), 3.14159265)
58
self.assertRaises(db.VariableUndefinedError,
59
lambda: db.get_variable('e'))
60
db.del_variable('known_number')
61
self.assertRaises(db.VariableUndefinedError,
62
lambda: db.del_variable('does_not_exist'))
65
suite = unittest.makeSuite(TestDB)