Beispiel #1
0
    def test_initialization(self):
        """test that sorted list is initialized
        """

        l = sorted_points_list(self.normal_list)

        # points with larger importance are earlier
        zs = [x['importance'] for x in l]
        for i in range(len(zs) - 1):
            self.assertTrue(zs[i] >= zs[i + 1])
Beispiel #2
0
    def test_initialization(self):
        """test that sorted list is initialized
        """
       
        l = sorted_points_list(self.normal_list)

        # points with larger importance are earlier
        zs = [x['importance'] for x in l]
        for i in range(len(zs)-1):
            self.assertTrue(zs[i]>=zs[i+1])
Beispiel #3
0
    def test_insertion(self):
        "test insertions"

        l = sorted_points_list(self.normal_list)
        len_init = len(l)

        # inserting more important point
        p = {'importance': 1234567}
        l.insert(p)
        self.assertEqual(len(l), len_init + 1)
        self.assertTrue(p in l)

        # inserting non-important point
        p = {'importance': 1}
        l.insert(p)
        self.assertEqual(len(l), len_init + 2)
        self.assertTrue(p in l)
Beispiel #4
0
    def test_insertion(self):
        "test insertions"

        l = sorted_points_list(self.normal_list)
        len_init = len(l)

        # inserting more important point
        p = {'importance':1234567}
        l.insert(p)
        self.assertEqual(len(l),len_init+1)
        self.assertTrue(p in l)

        # inserting non-important point
        p = {'importance':1}
        l.insert(p)
        self.assertEqual(len(l),len_init+2)
        self.assertTrue(p in l)
Beispiel #5
0
 def insert_to_tile(self, gt_key_name=None, max_z=None):
     if not gt_key_name:
         gt_key_name = GeoTree._GEO_TREE_KEY
     if not max_z:
         max_z = get_max_z(gt_key_name)
     x,y,z = lat_lon_to_tile(self.coord.lat, self.coord.lon, max_z)
     tile_key_name = '%d,%d,%d,%s' % (x,y,z,gt_key_name)
     t = Tile.get_by_key_name(tile_key_name)
     if not t:
         t = Tile(x=x, y=y, z=z, key_name=tile_key_name, gt_key_name=gt_key_name)
     point_dict = {'key_name':self.key().name(),'importance':self.importance,'coord':(self.coord.lat,self.coord.lon),'name':self.name}
     if t.points_native:
         # use sorted list because this is used during merging of tiles
         points_native = sorted_points_list(json.loads(t.points_native))
         points_native.insert(point_dict)
         t.points_native = json.dumps(points_native)
     else:
         points_native = [point_dict]
         t.points_native = json.dumps(points_native)
     t.put()
     return tile_key_name
Beispiel #6
0
 def update_importance(self, importance_new, gt_key_name=None, max_z=None):
     """updates importance of the point and the maximum zoom tile, other tiles are not updated"""
     if not gt_key_name:
         gt_key_name = GeoTree._GEO_TREE_KEY
     if not max_z:
         max_z = get_max_z(gt_key_name)
     self.importance = importance_new
     self.put()
     x,y,z = lat_lon_to_tile(self.coord.lat, self.coord.lon, max_z)
     tile_key_name = '%d,%d,%d,%s' % (x,y,z,gt_key_name)
     t = Tile.get_by_key_name(tile_key_name)
     if t:
         if t.points_native:
             points_native = json.loads(t.points_native)
             self_key_name = self.key().name()
             for p in points_native:
                 if p['key_name'] == self_key_name:
                     p['importance'] = importance_new
                     t.points_native = json.dumps(sorted_points_list(points_native))
                     break
             t.put()
     GeoTree.mark_tile_updated(tile_key_name, gt_key_name)