コード例 #1
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_reference_3(self):
        """
        This entry does not have DOI.
        ICSD ver. 2017 had multiple references,
        while ICSD ver. 2019 does not have.
        """
        code = 5151
        query = {
            "icsd_collection_code": code,
        }

        queryer = Queryer(query=query)
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)

        with open("expected/{}/meta_data.json".format(code)) as f:
            expected_dict = json.load(f)

        with open("{}/meta_data.json".format(code)) as f:
            crawled_dict = json.load(f)

        self.assertEqual("Powder Diffraction (1987) 2, p225-p226",
                         expected_dict['reference_2'])
        self.assertEqual("", crawled_dict['reference_2'])

        for key in new_keys + conflicting_keys:
            del crawled_dict[key]

        for key in abolished_keys + conflicting_keys:
            del expected_dict[key]

        self.assertDictEqual(expected_dict, crawled_dict)
コード例 #2
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_dynamic_table(self):
        code = 418537
        query = {
            "icsd_collection_code": code,
        }

        queryer = Queryer(query=query)
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)
コード例 #3
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_warning_parse(self):
        code = 418498
        query = {
            "icsd_collection_code": code,
        }

        queryer = Queryer(query=query, structure_source="all")
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)

        with open("{}/meta_data.json".format(code)) as f:
            crawled_dict = json.load(f)

        assert crawled_dict['theoretical_calculation'] == True
コード例 #4
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_cell_parameters(self):

        cell_str2 = "3.792 (5) 3.792 (5) 3.792 (5) 90. 90. 90."
        d2 = Queryer.parse_cell_parameters(Queryer, cell_str2)
        self.assertAlmostEqual(d2['a'], 3.792)
        self.assertAlmostEqual(d2['b'], 3.792)
        self.assertAlmostEqual(d2['c'], 3.792)
        self.assertAlmostEqual(d2['alpha'], 90.0)
        self.assertAlmostEqual(d2['beta'], 90.0)
        self.assertAlmostEqual(d2['gamma'], 90.0)

        cell_str1 = '6.103(1) 12.566(3) 26.031(1) 90. 90. 90.'
        d1 = Queryer.parse_cell_parameters(Queryer, cell_str1)
        print(d1)
        self.assertAlmostEqual(d1['a'], 6.103)
        self.assertAlmostEqual(d1['b'], 12.566)
        self.assertAlmostEqual(d1['c'], 26.031)
        self.assertAlmostEqual(d1['alpha'], 90.0)
        self.assertAlmostEqual(d1['beta'], 90.0)
        self.assertAlmostEqual(d1['gamma'], 90.0)
コード例 #5
0
def command_scrape(args):
    if args.all:
        scrape_all(args.dlcif == False, args.maxdl)

    if args.code > 0:
        query = {
            "icsd_collection_code": args.code,
        }
        queryer = Queryer(query=query, structure_source=args.source)
        queryer.skipcif = args.dlcif == False
        queryer.perform_icsd_query()

    if args.composition != "":
        query = {
            "composition": args.composition,
        }
        queryer = Queryer(query=query, structure_source=args.source)
        queryer.perform_icsd_query()
コード例 #6
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_metadata(self):
        query = {
            "composition": "H:18:18 Al:6:6 O:28:28 P:4:4",
        }

        queryer = Queryer(query=query)
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)

        with open("expected/5013/meta_data.json") as f:
            expected_dict = json.load(f)

        with open("5013/meta_data.json") as f:
            crawled_dict = json.load(f)

        for key in new_keys + conflicting_keys:
            del crawled_dict[key]

        for key in abolished_keys + conflicting_keys:
            del expected_dict[key]

        self.assertDictEqual(expected_dict, crawled_dict)
コード例 #7
0
    def test_random(self):

        paths = glob.glob("expected/*")
        path = random.choice(paths)
        code = path.split("/")[-1]
        query = {
            "icsd_collection_code": code,
        }

        queryer = Queryer(query=query)
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)

        with open("expected/{}/meta_data.json".format(code)) as f:
            expected_dict = json.load(f)

        with open("{}/meta_data.json".format(code)) as f:
            crawled_dict = json.load(f)

        self.assertCountEqual(crawled_dict['comments'],
                              expected_dict['comments'])
        if expected_dict['R_value'] == "":
            self.assertEqual(crawled_dict['R_value'], None)

        if expected_dict['structural_prototype'] != crawled_dict[
                'structural_prototype']:
            print("Structural prototypes did not match: 2017ver:{} 2019ver:{}".
                  format(expected_dict['structural_prototype'],
                         crawled_dict['structural_prototype']))

        assert "Version" in crawled_dict['ICSD_version']

        for key in new_keys + conflicting_keys:
            del crawled_dict[key]

        for key in abolished_keys + conflicting_keys:
            del expected_dict[key]

        self.assertDictEqual(expected_dict, crawled_dict)
コード例 #8
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_cell_parameter(self):
        code = 251445
        query = {
            "icsd_collection_code": code,
        }

        queryer = Queryer(query=query)
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)

        with open("expected/{}/meta_data.json".format(code)) as f:
            expected_dict = json.load(f)

        with open("{}/meta_data.json".format(code)) as f:
            crawled_dict = json.load(f)

        for key in new_keys + conflicting_keys:
            del crawled_dict[key]

        for key in abolished_keys + conflicting_keys:
            del expected_dict[key]

        self.assertDictEqual(expected_dict, crawled_dict)
コード例 #9
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
    def test_theory(self):
        code = 195347
        query = {
            "icsd_collection_code": code,
        }

        queryer = Queryer(query=query, structure_source="theory")
        queryer.perform_icsd_query()
        self.assertEqual(1, queryer.hits)

        with open("expected/{}/meta_data.json".format(code)) as f:
            expected_dict = json.load(f)

        with open("{}/meta_data.json".format(code)) as f:
            crawled_dict = json.load(f)

        for key in new_keys + conflicting_keys:
            del crawled_dict[key]

        for key in abolished_keys + conflicting_keys:
            del expected_dict[key]

        self.assertDictEqual(expected_dict, crawled_dict)
コード例 #10
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
 def test_AlOF(self):
     query = {'composition': 'Al O F', 'number_of_elements': '3'}
     queryer = Queryer(query=query, structure_source='theory')
     queryer.perform_icsd_query()
     self.assertEqual(2, queryer.hits)
コード例 #11
0
ファイル: test_queryer.py プロジェクト: kmu/icsd-queryer
 def test_dummy_data(self):
     queryer = Queryer()