File: test_dataset_access.cpp

package info (click to toggle)
spglib 2.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 14,180 kB
  • sloc: ansic: 125,066; python: 7,717; cpp: 2,197; f90: 2,143; ruby: 792; makefile: 22; sh: 18
file content (85 lines) | stat: -rw-r--r-- 2,521 bytes parent folder | download | duplicates (2)
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
77
78
79
80
81
82
83
84
85
#include <gtest/gtest.h>

extern "C" {
#include "spglib.h"
#include "utils.h"
}

TEST(DatasetAccess, test_spg_get_symmetry_from_database) {
    int rotations[192][3][3];
    double translations[192][3];
    int size;

    size = spg_get_symmetry_from_database(rotations, translations, 460);
    ASSERT_EQ(size, 36);
    show_symmetry_operations(rotations, translations, size);
}

TEST(DatasetAccess, test_spg_get_hall_number_from_symmetry) {
    /* Im-3m (229) */
    double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
    double position[][3] = {{0, 0, 0}, {0.5, 0.5, 0.5}};
    int types[] = {1, 1};
    int num_atom = 2;
    double symprec = 1e-5;

    int hall_number;
    SpglibSpacegroupType spgtype;
    SpglibDataset *dataset;

    dataset = NULL;

    dataset = spg_get_dataset(lattice, position, types, num_atom, symprec);
    ASSERT_TRUE(dataset != NULL);

    printf("hall_number = %d is found by spg_get_dataset.\n",
           dataset->hall_number);
    hall_number = spg_get_hall_number_from_symmetry(
        dataset->rotations, dataset->translations, dataset->n_operations,
        symprec);
    printf("hall_number = %d is found by spg_get_hall_number_from_symmetry.\n",
           hall_number);
    ASSERT_EQ(hall_number, dataset->hall_number);
    ASSERT_EQ(hall_number, 529);

    spgtype = spg_get_spacegroup_type(hall_number);
    ASSERT_EQ(spgtype.number, 229);
    show_spacegroup_type(spgtype);

    if (dataset) {
        spg_free_dataset(dataset);
    }
}

TEST(DatasetAccess, test_spg_get_spacegroup_type_from_symmetry) {
    /* Im-3m (229) */
    double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 4}};
    double position[][3] = {{0, 0, 0}, {0.5, 0.5, 0.5}};
    int types[] = {1, 1};
    int num_atom = 2;
    double symprec = 1e-5;

    SpglibSpacegroupType spgtype;
    SpglibDataset *dataset;

    dataset = NULL;

    dataset = spg_get_dataset(lattice, position, types, num_atom, symprec);
    ASSERT_TRUE(dataset != NULL);

    printf("hall_number = %d is found by spg_get_dataset.\n",
           dataset->hall_number);
    spgtype = spg_get_spacegroup_type_from_symmetry(
        dataset->rotations, dataset->translations, dataset->n_operations,
        lattice, symprec);
    printf("number = %d is found by spg_get_spacegroup_type_from_symmetry.\n",
           spgtype.number);

    show_spacegroup_type(spgtype);
    ASSERT_EQ(spgtype.number, dataset->spacegroup_number);
    ASSERT_EQ(spgtype.number, 229);

    if (dataset) {
        spg_free_dataset(dataset);
    }
}