示例#1
0
文件: test_db.py 项目: sp00/pattern
 def test_json(self):
     # Assert JSON output.
     v = db.Datasheet(rows=[[u"Schrödinger", 3], [u"Hofstadter", 5]])
     self.assertEqual(v.json, u'[["Schrödinger", 3], ["Hofstadter", 5]]')
     # Assert JSON output with headers.
     v = db.Datasheet(rows=[[u"Schrödinger", 3], [u"Hofstadter",  5]], 
                    fields=[("name", db.STRING), ("age", db.INT)])
     random.seed(0)
     self.assertEqual(v.json, u'[{"age": 3, "name": "Schrödinger"}, {"age": 5, "name": "Hofstadter"}]')
     print "pattern.db.Datasheet.json"
示例#2
0
文件: test_db.py 项目: pri-k/pattern
 def test_json(self):
     # Assert JSON output.
     v = db.Datasheet(rows=[["Schrödinger", 3], ["Hofstadter", 5]])
     self.assertEqual(v.json, '[["Schrödinger", 3], ["Hofstadter", 5]]')
     # Assert JSON output with headers.
     v = db.Datasheet(rows=[["Schrödinger", 3], ["Hofstadter", 5]],
                    fields=[("name", db.STRING), ("age", db.INT)])
     random.seed(0)
     w = db.json.loads(v.json)
     self.assertTrue({"age": 3, "name": "Schrödinger"} in w)
     self.assertTrue({"age": 5, "name": "Hofstadter"} in w)
     print("pattern.db.Datasheet.json")
示例#3
0
文件: test_db.py 项目: sp00/pattern
 def test_copy(self):
     # Assert Datasheet.copy().
     v = db.Datasheet([[1,2,3], [4,5,6], [7,8,9]])
     self.assertTrue(v.copy(), [[1,2,3], [4,5,6], [7,8,9]])
     self.assertTrue(v.copy(rows=[0]), [[1,2,3]])
     self.assertTrue(v.copy(rows=[0], columns=[0]), [[1]])
     self.assertTrue(v.copy(columns=[0]), [[1], [4], [7]])
     print "pattern.db.Datasheet.copy()"
示例#4
0
文件: test_db.py 项目: sp00/pattern
 def test_column(self):
     # Assert DatasheetColumn object.
     # It has a reference to the parent Datasheet, as long as it is not deleted from the datasheet.
     v = db.Datasheet(rows=[[1,3],[2,4]])
     column = v.columns[0]
     column.insert(1, 0, default=None)
     self.assertEqual(v, [[1,3], [0,None], [2,4]])
     del v.columns[0]
     self.assertTrue(column._datasheet, None)
     print "pattern.db.DatasheetColumn"
示例#5
0
文件: test_db.py 项目: sp00/pattern
 def test_group(self):
     # Assert Datasheet.group().
     v1 = db.Datasheet(rows=[[1,2,"a"],[1,3,"b"],[1,4,"c"],[0,0,"d"]])
     v2 = v1.group(0)
     v3 = v1.group(0, function=db.LAST)
     v4 = v1.group(0, function=(db.FIRST, db.COUNT, db.CONCATENATE))
     v5 = v1.group(0, function=db.CONCATENATE, key=lambda j: j>0)
     self.assertEqual(v2, [[1,2,"a"], [0,0,"d"]])
     self.assertEqual(v3, [[1,4,"c"], [0,0,"d"]])
     self.assertEqual(v4, [[1,3,u"a,b,c"], [0,1,u"d"]])
     self.assertEqual(v5, [[True,u"2,3,4",u"a,b,c"], [False,u"0",u"d"]])
     print "pattern.db.Datasheet.group()"
示例#6
0
文件: test_db.py 项目: sp00/pattern
 def test_slice(self):
     # Assert Datasheet slices.
     v = db.Datasheet([[1,2,3], [4,5,6], [7,8,9]])
     v = v.copy()
     self.assertEqual(v.slice(0,1,3,2), [[2,3], [5,6], [8,9]])
     self.assertEqual(v[2],       [7,8,9])
     self.assertEqual(v[2,2],     9)
     self.assertEqual(v[2,1:],    [8,9])
     self.assertEqual(v[0:2],     [[1,2,3], [4,5,6]])
     self.assertEqual(v[0:2,1],   [2,5])
     self.assertEqual(v[0:2,0:2], [[1,2], [4,5]])
     # Assert new Datasheet for i:j slices.
     self.assertTrue(isinstance(v[0:2],     db.Datasheet))
     self.assertTrue(isinstance(v[0:2,0:2], db.Datasheet))
     print "pattern.db.Datasheet.slice()"
示例#7
0
文件: test_db.py 项目: sp00/pattern
 def test_fields(self):
     # Assert Datasheet with incomplete headers.
     v = db.Datasheet(rows=[[u"Schrödinger", "cat"]], fields=[("name", db.STRING)])
     self.assertEqual(v.fields, [("name", db.STRING)])
     # Assert (None, None) for missing headers.
     v.columns.swap(0,1)
     self.assertEqual(v.fields, [(None, None), ("name", db.STRING)])
     v.columns[0] = ["dog"]
     self.assertEqual(v.fields, [(None, None), ("name", db.STRING)])
     # Assert removing a column removes the header.
     v.columns.pop(0)
     self.assertEqual(v.fields, [("name",db.STRING)])
     # Assert new columns with header description.
     v.columns.append(["cat"])
     v.columns.append([3], field=("age", db.INTEGER))
     self.assertEqual(v.fields, [("name", db.STRING), (None, None), ("age", db.INTEGER)])
     # Assert column by name.
     self.assertEqual(v.name, [u"Schrödinger"])
     print "pattern.db.Datasheet.fields"
示例#8
0
文件: test_db.py 项目: sp00/pattern
 def test_columns(self):
     # Assert Datasheet.columns DatasheetColumns object.
     v = db.Datasheet(rows=[[1,3],[2,4]])
     v.columns += [5,6]
     v.columns[0] = [0,0]
     v.columns.swap(0,1)
     v.columns.insert(1, [1,1])
     v.columns.pop(1)
     self.assertTrue(isinstance(v.columns, db.DatasheetColumns))
     self.assertEqual(v.columns, [[3,4],[0,0],[5,6]])
     self.assertEqual(v.columns[0], [3,4])
     self.assertEqual(v.columns[-1], [5,6])
     self.assertEqual(v.columns.count([3,4]), 1)
     self.assertEqual(v.columns.index([3,4]), 0)
     self.assertEqual(sorted(v.columns, reverse=True), [[5,6],[3,4],[0,0]])
     self.assertRaises(AttributeError, v._set_columns, [])
     # Assert default for new columns with missing rows.
     v.columns.extend([[7],[9]], default=0)
     self.assertEqual(v.columns, [[3,4],[0,0],[5,6],[7,0],[9,0]])
     print "pattern.db.Datasheet.columns"
示例#9
0
文件: test_db.py 项目: sp00/pattern
 def test_flip(self):
     # Assert flip matrix.
     v = db.flip(db.Datasheet([[1,2], [3,4]]))
     self.assertEqual(v, [[1,3], [2,4]])
     print "pattern.db.flip()"
示例#10
0
文件: test_db.py 项目: sp00/pattern
 def test_map(self):
     # Assert Datasheet.map() (in-place).
     v = db.Datasheet(rows=[[1,2],[3,4]])
     v.map(lambda x: x+1)
     self.assertEqual(v, [[2,3],[4,5]])
     print "pattern.db.Datasheet.map()"