Add test_gridsys_get_grid_address_from_index

This commit is contained in:
Atsushi Togo 2023-01-22 22:24:31 +09:00
parent 616f2ba0c3
commit e2e9bdcd24
1 changed files with 32 additions and 6 deletions

View File

@ -11,20 +11,20 @@ extern "C" {
TEST(test_gridsys, test_gridsys_get_all_grid_addresses) { TEST(test_gridsys, test_gridsys_get_all_grid_addresses) {
long(*gr_grid_addresses)[3]; long(*gr_grid_addresses)[3];
long D_diag[3] = {3, 4, 5}; long D_diag[3] = {3, 4, 5};
long n, i, j, k, count; long n, i, j, k, grid_index;
n = D_diag[0] * D_diag[1] * D_diag[2]; n = D_diag[0] * D_diag[1] * D_diag[2];
gr_grid_addresses = (long(*)[3])malloc(sizeof(long[3]) * n); gr_grid_addresses = (long(*)[3])malloc(sizeof(long[3]) * n);
gridsys_get_all_grid_addresses(gr_grid_addresses, D_diag); gridsys_get_all_grid_addresses(gr_grid_addresses, D_diag);
count = 0; grid_index = 0;
for (k = 0; k < D_diag[2]; k++) { for (k = 0; k < D_diag[2]; k++) {
for (j = 0; j < D_diag[1]; j++) { for (j = 0; j < D_diag[1]; j++) {
for (i = 0; i < D_diag[0]; i++) { for (i = 0; i < D_diag[0]; i++) {
ASSERT_EQ(gr_grid_addresses[count][0], i); ASSERT_EQ(gr_grid_addresses[grid_index][0], i);
ASSERT_EQ(gr_grid_addresses[count][1], j); ASSERT_EQ(gr_grid_addresses[grid_index][1], j);
ASSERT_EQ(gr_grid_addresses[count][2], k); ASSERT_EQ(gr_grid_addresses[grid_index][2], k);
count++; grid_index++;
} }
} }
} }
@ -52,6 +52,32 @@ TEST(test_gridsys, test_gridsys_get_double_grid_address) {
} }
} }
/**
* @brief gridsys_get_grid_address_from_index
* Return single grid address of grid point index in GR-grid. See the definition
* of grid point index at gridsys_get_all_grid_addresses.
*/
TEST(test_gridsys, test_gridsys_get_grid_address_from_index) {
long address[3];
long D_diag[3] = {3, 4, 5};
long i, j, k, l, grid_index;
for (k = 0; k < D_diag[2]; k++) {
for (j = 0; j < D_diag[1]; j++) {
for (i = 0; i < D_diag[0]; i++) {
gridsys_get_grid_address_from_index(address, grid_index,
D_diag);
for (l = 0; l < 3; l++) {
ASSERT_EQ(address[0], i);
ASSERT_EQ(address[1], j);
ASSERT_EQ(address[2], k);
}
grid_index++;
}
}
}
}
/* TEST(test_gridsys, test_gridsys_get_all_grid_addresses) { /* TEST(test_gridsys, test_gridsys_get_all_grid_addresses) {
double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}}; double lattice[3][3] = {{4, 0, 0}, {0, 4, 0}, {0, 0, 3}};
double position[][3] = { double position[][3] = {