1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
# coding: UTF-8
import unittest
import jpgrid
class TestReference(unittest.TestCase):
def test_lv1(self):
self.assertEqual("5438", jpgrid.encodeLv1(36,138))
def test_prefectures(self):
# http://www.stat.go.jp/data/mesh/pdf/gaiyo1.pdf
# page. 15
def dms(d,m,s):
return float(d) + (float(m) + float(s)/60)/60.0
dataset = [
("北海道", "札幌市", "6441-42-77", ("43","03","30"), ("141","20","15")),
("青森県", "青森市", "6140-15-89", ("40","49","00"), ("140","44","15")),
("岩手県", "盛岡市", "5941-41-42", ("39","42","00"), ("141","09","00")),
("宮城県", "仙台市", "5740-36-29", ("38","16","00"), ("140","51","45")),
("秋田県", "秋田市", "5940-40-68", ("39","43","00"), ("140","06","00")),
("山形県", "山形市", "5740-22-89", ("38","14","00"), ("140","21","45")),
("福島県", "福島市", "5640-53-07", ("37","45","00"), ("140","27","45")),
("茨城県", "水戸市", "5440-43-15", ("36","20","30"), ("140","26","15")),
("栃木県", "宇都宮市", "5439-67-70", ("36","33","30"), ("139","52","30")),
("群馬県", "前橋市", "5439-40-64", ("36","23","00"), ("139","03","00")),
("埼玉県", "さいたま市", "5339-65-21", ("35","51","00"), ("139","38","15")),
("千葉県", "千葉市", "5340-30-29", ("35","36","00"), ("140","06","45")),
("東京都", "新宿区", "5339-45-25", ("35","41","00"), ("139","41","15")),
("神奈川県", "横浜市", "5339-15-31", ("35","26","30"), ("139","38","15")),
("新潟県", "新潟市", "5639-60-81", ("37","54","00"), ("139","00","45")),
("富山県", "富山市", "5537-01-36", ("36","41","30"), ("137","12","00")),
("石川県", "金沢市", "5436-75-10", ("36","35","30"), ("136","37","30")),
("福井県", "福井市", "5436-01-77", ("36","03","30"), ("136","12","45")),
("山梨県", "甲府市", "5338-34-95", ("35","39","30"), ("138","33","45")),
("長野県", "長野市", "5438-71-84", ("36","39","00"), ("138","10","30")),
("岐阜県", "岐阜市", "5336-05-67", ("35","23","00"), ("136","42","45")),
("静岡県", "静岡市", "5238-33-70", ("34","58","30"), ("138","22","30")),
("愛知県", "名古屋市", "5236-67-12", ("35","10","30"), ("136","54","00")),
("三重県", "津市", "5236-04-70", ("34","43","30"), ("136","30","00")),
("滋賀県", "大津市", "5235-46-09", ("35","00","00"), ("135","51","45")),
("京都府", "京都市", "5235-46-20", ("35","01","00"), ("135","45","00")),
("大阪府", "大阪市", "5235-04-21", ("34","41","00"), ("135","30","45")),
("兵庫県", "神戸市", "5235-01-24", ("34","41","00"), ("135","10","30")),
("奈良県", "奈良市", "5235-06-26", ("34","41","00"), ("135","49","30")),
("和歌山県", "和歌山市", "5135-21-73", ("34","13","30"), ("135","09","45")),
("鳥取県", "鳥取市", "5334-21-09", ("35","30","00"), ("134","14","15")),
("島根県", "松江市", "5333-10-64", ("35","28","00"), ("133","03","00")),
("岡山県", "岡山市", "5133-77-94", ("34","39","30"), ("133","55","30")),
("広島県", "広島市", "5132-43-76", ("34","23","30"), ("132","27","00")),
("山口県", "山口市", "5131-23-27", ("34","11","00"), ("131","27","45")),
("徳島県", "徳島市", "5134-04-74", ("34","03","30"), ("134","33","00")),
("香川県", "高松市", "5134-40-03", ("34","20","00"), ("134","02","15")),
("愛媛県", "松山市", "5032-66-01", ("33","50","00"), ("132","45","45")),
("高知県", "高知市", "5033-24-72", ("33","33","30"), ("133","31","30")),
("福岡県", "福岡市", "5030-33-23", ("33","36","00"), ("130","24","45")),
("佐賀県", "佐賀市", "4930-62-93", ("33","14","30"), ("130","17","15")),
("長崎県", "長崎市", "4929-06-99", ("32","44","30"), ("129","51","45")),
("熊本県", "熊本市", "4930-15-49", ("32","47","00"), ("130","44","15")),
("大分県", "大分市", "4931-64-89", ("33","14","00"), ("131","36","45")),
("宮崎県", "宮崎市", "4731-63-93", ("31","54","30"), ("131","24","45")),
("鹿児島県", "鹿児島市", "4730-24-74", ("31","33","30"), ("130","33","00")),
("沖縄県", "那覇市", "3927-25-54", ("26","12","30"), ("127","40","30"))
]
for data in dataset:
# encode
self.assertEqual(data[2].replace("-",""), jpgrid.encode(dms(*data[3]), dms(*data[4])))
t = jpgrid.decode(data[2].replace("-",""))
# decode
self.assertTrue(t[0] > dms(*data[3]))
self.assertTrue(t[0] < dms(*data[3]) + 1.5/80.0)
self.assertTrue(t[1] > dms(*data[4]))
self.assertTrue(t[1] < dms(*data[4]) + 1.0/80.0)
if __name__=='__main__':
unittest.main()
|