Ejemplo n.º 1
0
class TestHalfMesh(unittest.TestCase):
    """
    Tests for jpmesh.HalfMesh.
    """
    ORG_CODE = '5339-35-96-4'
    CODE = '533935964'
    SOUTH_WEST = Coordinate(lon=Angle.from_millisecond(502942500.0),
                            lat=Angle.from_millisecond(128385000.0))

    def test_from_code(self):
        """
        Test for jpmesh.coordinate.HalfMesh.from_code.
        """
        _test_from_code(HalfMesh, self.ORG_CODE, self.CODE, self.SOUTH_WEST)

    def test_from_coordinate(self):
        """
        Test for jpmesh.coordinate.HalfMesh.from_coordinate.
        """
        _test_from_coordinate(HalfMesh, self.CODE, self.SOUTH_WEST)

    @raises(ValueError)
    def test_invalid_div_index(self):
        """
        An invalid division index causes a ValueError.
        """
        HalfMesh(self.SOUTH_WEST, 5)

    @staticmethod
    @raises(ValueError)
    def test_invalid_code():
        """
        Invalid mesh code causes a ValueError.
        """
        HalfMesh.from_code('53393537')
Ejemplo n.º 2
0
    def test_operators(self):
        """Test for operators.
        """
        angle1 = Angle.from_millisecond(1.0)
        angle2 = Angle.from_millisecond(1.0)
        angle3 = Angle.from_millisecond(2.0)
        self.assertEqual((angle1 + angle2).degree,
                         angle1.degree + angle2.degree)
        self.assertEqual((angle1 - angle2).degree,
                         angle1.degree - angle2.degree)
        self.assertEqual((angle1 * 2).degree, angle1.degree * 2)
        self.assertEqual((angle1 / 2).degree, angle1.degree / 2)
        self.assertEqual((angle1 / 2.0).degree, angle1.degree / 2.0)
        self.assertEqual((+angle1).degree, +angle1.degree)
        self.assertEqual((-angle1).degree, -angle1.degree)
        self.assertEqual(abs(angle1).degree, abs(angle1.degree))
        self.assertTrue(angle1 == angle2)
        self.assertFalse(angle1 == angle3)
        self.assertFalse(angle1 != angle2)
        self.assertTrue(angle1 != angle3)
        self.assertFalse(angle1 < angle2)
        self.assertTrue(angle2 < angle3)
        self.assertTrue(angle1 <= angle2)
        self.assertTrue(angle2 <= angle3)
        self.assertFalse(angle3 <= angle2)
        self.assertFalse(angle2 > angle1)
        self.assertTrue(angle3 > angle2)
        self.assertTrue(angle2 >= angle1)
        self.assertTrue(angle3 >= angle2)
        self.assertFalse(angle2 >= angle3)

        # Call __div__ and __truediv__ expressly.
        self.assertEqual(angle1.for_test_div(2.0).degree, angle1.degree / 2.0)
        self.assertEqual(
            angle1.for_test_truediv(2.0).degree, angle1.degree / 2.0)
Ejemplo n.º 3
0
 def test_properties(self):
     """Test for properties.
     """
     millisecond = 3600000
     angle = Angle.from_millisecond(millisecond)
     self.assertEqual(angle.degree, float(millisecond) / 60 / 60 / 1000)
     self.assertEqual(angle.minute, float(millisecond) / 60 / 1000)
     self.assertEqual(angle.second, float(millisecond) / 1000)
     self.assertEqual(angle.millisecond, float(millisecond))
Ejemplo n.º 4
0
class TestQuarterMesh(unittest.TestCase):
    """
    Tests for jpmesh.QuarterMesh.
    """
    ORG_CODE = '5339-35-96-1-4'
    CODE = '5339359614'
    SOUTH_WEST = Coordinate(lon=Angle.from_millisecond(502931250.0),
                            lat=Angle.from_millisecond(128377500.0))

    def test_from_code(self):
        """
        Test for jpmesh.coordinate.QuarterMesh.from_code.
        """
        _test_from_code(QuarterMesh, self.ORG_CODE, self.CODE, self.SOUTH_WEST)

    def test_from_coordinate(self):
        """
        Test for jpmesh.coordinate.QuarterMesh.from_coordinate.
        """
        _test_from_coordinate(QuarterMesh, self.CODE, self.SOUTH_WEST)
Ejemplo n.º 5
0
class TestThirdMesh(unittest.TestCase):
    """Tests for jpmesh.ThirdMesh.
    """
    ORG_CODE = '5339-35-96'
    CODE = '53393596'
    SOUTH_WEST = Coordinate(lon=Angle.from_millisecond(502920000.0),
                            lat=Angle.from_millisecond(128370000.0))

    def test_from_code(self):
        """
        Test for jpmesh.coordinate.ThirdMesh.from_code.
        """
        _test_from_code(ThirdMesh, self.ORG_CODE, self.CODE, self.SOUTH_WEST)

    def test_from_coordinate(self):
        """
        Test for jpmesh.coordinate.ThirdMesh.from_coordinate.
        """
        _test_from_coordinate(ThirdMesh, self.CODE, self.SOUTH_WEST)

    @raises(ValueError)
    def test_invalid_lat_number(self):
        """
        An invalid latitude number causes a ValueError.
        """
        ThirdMesh(self.SOUTH_WEST, 10, 0)

    @raises(ValueError)
    def test_invalid_lon_number(self):
        """
        An invalid longitude number causes a ValueError.
        """
        ThirdMesh(self.SOUTH_WEST, 0, 10)

    @staticmethod
    @raises(ValueError)
    def test_invalid_code():
        """
        Invalid mesh code causes a ValueError.
        """
        ThirdMesh.from_code('533935379')
Ejemplo n.º 6
0
class TestOneEighthMesh(unittest.TestCase):
    """
    Tests for jpmesh.OneEighthMesh.
    """
    ORG_CODE = '5339-35-96-1-1-4'
    CODE = '53393596114'
    SOUTH_WEST = Coordinate(lon=Angle.from_millisecond(502925625.0),
                            lat=Angle.from_millisecond(128373750.0))

    def test_from_code(self):
        """
        Test for jpmesh.coordinate.OneEighthMesh.from_code.
        """
        _test_from_code(OneEighthMesh, self.ORG_CODE, self.CODE,
                        self.SOUTH_WEST)

    def test_from_coordinate(self):
        """
        Test for jpmesh.coordinate.OneEighthMesh.from_coordinate.
        """
        _test_from_coordinate(OneEighthMesh, self.CODE, self.SOUTH_WEST)
Ejemplo n.º 7
0
class TestFirstMesh(unittest.TestCase):
    """Tests for jpmesh.FirstMesh.
    """
    ORG_CODE = '5339'
    CODE = ORG_CODE
    SOUTH_WEST = Coordinate(lon=Angle.from_millisecond(500400000.0),
                            lat=Angle.from_millisecond(127200000.0))

    def test_from_code(self):
        """Test for jpmesh.coordinate.FirstMesh.from_code.
        """
        _test_from_code(FirstMesh, self.ORG_CODE, self.CODE, self.SOUTH_WEST)

    def test_from_coordinate(self):
        """Test for jpmesh.coordinate.FirstMesh.from_coordinate.
        """
        _test_from_coordinate(FirstMesh, self.CODE, self.SOUTH_WEST)

    @staticmethod
    @raises(ValueError)
    def test_invalid_lat_number():
        """An invalid latitude number causes a ValueError.
        """
        FirstMesh(100, 0)

    @staticmethod
    @raises(ValueError)
    def test_invalid_lon_number():
        """An invalid longitude number causes a ValueError.
        """
        FirstMesh(0, 100)

    @staticmethod
    @raises(ValueError)
    def test_invalid_code():
        """Invalid mesh code causes a ValueError.
        """
        FirstMesh.from_code('53393')
Ejemplo n.º 8
0
class TestSecondMesh(unittest.TestCase):
    """
    Tests for jpmesh.SecondMesh.
    """
    ORG_CODE = '5339-45'
    CODE = '533945'
    SOUTH_WEST = Coordinate(lon=Angle.from_millisecond(502650000.0),
                            lat=Angle.from_millisecond(128400000.0))

    def test_from_code(self):
        """Test for jpmesh.coordinate.SecondMesh.from_code.
        """
        _test_from_code(SecondMesh, self.ORG_CODE, self.CODE, self.SOUTH_WEST)

    def test_from_coordinate(self):
        """Test for jpmesh.coordinate.SecondMesh.from_coordinate.
        """
        _test_from_coordinate(SecondMesh, self.CODE, self.SOUTH_WEST)

    @raises(ValueError)
    def test_invalid_lat_number(self):
        """An invalid latitude number causes a ValueError.
        """
        SecondMesh(self.SOUTH_WEST, 9, 0)

    @raises(ValueError)
    def test_invalid_lon_number(self):
        """An invalid longitude number causes a ValueError.
        """
        SecondMesh(self.SOUTH_WEST, 0, 9)

    @staticmethod
    @raises(ValueError)
    def test_invalid_code():
        """Invalid mesh code causes a ValueError.
        """
        SecondMesh.from_code('5339356')
Ejemplo n.º 9
0
# -*- coding: utf-8 -*-

from jpmesh import Angle, Coordinate, FirstMesh, SecondMesh, parse_mesh_code

coordinate = Coordinate(lon=Angle.from_degree(140.0),
                        lat=Angle.from_degree(35.0))

# mesh_code = "5240"

# mesh = FirstMesh.from_coordinate(coordinate)
# print("FirstMesh code: {}".format(mesh.code))
# print("FirstMesh lon: {}".format(mesh.south_west.lon.degree))
# print("FirstMesh lat: {}".format(mesh.south_west.lat.degree))
# print(dir(mesh))

# mesh = SecondMesh.from_coordinate(coordinate)
# print("SecondMesh code: {}".format(mesh.code))
# print("SecondMesh lon: {}".format(mesh.south_west.lon.degree))
# print("SecondMesh lat: {}".format(mesh.south_west.lat.degree))
# print("SecondMesh lat: {}".format(mesh.south_west.lat.degree))
# print("SecondMesh size: {}".format(mesh.size.lon.degree))
# print("SecondMesh size: {}".format(mesh.size.lat.degree))
# print("")
# print("SecondMesh size: {}".format(mesh.south_west.lon.degree + mesh.size.lon.degree))
# print("SecondMesh size: {}".format(mesh.south_west.lat.degree + mesh.size.lat.degree))
# print("SecondMesh Parantmesh: {}".format(dir(mesh.ParentMesh)))
# print("SecondMesh Parantmesh lon: {}".format(mesh.ParentMesh.south_west))
# print("SecondMesh Parantmesh lat: {}".format(mesh.ParentMesh.south_west.lat.degreee))
# print(dir(mesh))
# print(mesh.code)
Ejemplo n.º 10
0
def run(file_dir_list):
    def summary(mesh_hash, mesh_code, summary_value_dict):
        if mesh_code in mesh_hash.keys():
            mesh_hash[mesh_code]["count"] += 1
            for summary_val in summary_value_list:
                mesh_hash[mesh_code]["sum"][summary_val] += summary_value_dict[summary_val]
            call_result = summary_value_dict["call_result"]
            if call_result.upper() == "OK":
                mesh_hash[mesh_code]["sum"]["Ok"] += 1
            elif call_result.upper() == "FAIL":
                mesh_hash[mesh_code]["sum"]["Fail"] += 1
            elif call_result.upper() == "DROP":
                mesh_hash[mesh_code]["sum"]["Drop"] += 1
        else:
            mesh_hash[mesh_code] = {"count" : 1, "sum" : {}}
            for summary_val in summary_value_list:
                mesh_hash[mesh_code]["sum"][summary_val] = summary_value_dict[summary_val]
            mesh_hash[mesh_code]["sum"]["Ok"] = 0
            mesh_hash[mesh_code]["sum"]["Fail"] = 0
            mesh_hash[mesh_code]["sum"]["Drop"] = 0
            call_result = summary_value_dict["call_result"]
            if call_result.upper() == "OK":
                mesh_hash[mesh_code]["sum"]["Ok"] = 1
            elif call_result.upper() == "FAIL":
                mesh_hash[mesh_code]["sum"]["Fail"] = 1
            elif call_result.upper() == "DROP":
                mesh_hash[mesh_code]["sum"]["Drop"] = 1
    
    def make_mesh_hash(coordinate, mesh_hash, summary_value_dict):
        mesh = HalfMesh.from_coordinate(coordinate) # change
        summary(mesh_hash, mesh.code, summary_value_dict)
    
    summary_value_list = ["rsrp", "rsrq", "sinr", "cqi", "thp_dl", "thp_ul", "PCI", "cell_max_tx_power",
    "traffic_load", "rs_power"]
    for file_dir in file_dir_list:
        line_read_cmd = "cat %s | wc -l" % file_dir
        full_line = os.popen(line_read_cmd).read().strip()

        print "full line : ", full_line

        fail_line = []
        line = 0

        mesh_hash = {}

        s_time = time.time()
        with open(file_dir, "r") as f:
            print file_dir
            col_schema = f.readline().strip().split(",")
            for origin in f:
                column_dict = {}
                origin = origin.replace("\"", "").strip().split(",")
                for idx, item in enumerate(origin):
                    column_dict[col_schema[idx]] = item
                date_time = column_dict["dt"].split(".")[0]
                summary_value_dict = {}
                try:
                    summary_value_dict["rsrp"] = float(column_dict["rsrp"].strip())
                    summary_value_dict["rsrq"] = float(column_dict["rsrq"].strip())
                    summary_value_dict["sinr"] = float(column_dict["sinr"].strip())
                    summary_value_dict["cqi"] = float(column_dict["cqi"].strip())
                    if column_dict["thp_dl"].strip() == "":
                        summary_value_dict["thp_dl"] = 0
                    else:
                        summary_value_dict["thp_dl"] = float(column_dict["thp_dl"].strip())
                    if column_dict["thp_ul"].strip() == "":
                        summary_value_dict["thp_ul"] = 0
                    else:
                        summary_value_dict["thp_ul"] = float(column_dict["thp_ul"].strip())
                    summary_value_dict["PCI"] = float(column_dict["PCI"].strip())
                    summary_value_dict["cell_max_tx_power"] = float(column_dict["cell_max_tx_power"].strip())
                    summary_value_dict["traffic_load"] = float(column_dict["traffic_load"].strip())
                    summary_value_dict["rs_power"] = float(column_dict["rs_power"].strip())
                    summary_value_dict["call_result"] = column_dict["call_result"].strip()
                except Exception, e:
                    print e
                    print "thp_ul: ", column_dict["thp_ul"]
                    print "thp_dl: ", column_dict['thp_dl']

                _lon = float(column_dict["lon"])
                _lat = float(column_dict["lat"])
                try:
                    coordinate = Coordinate(lon=Angle.from_degree(_lon), lat=Angle.from_degree(_lat))
                    make_mesh_hash(coordinate, mesh_hash, summary_value_dict)
                except Exception, err:
                    print err
                    fail_line.append(line)
                line += 1