|  | @@ -42,20 +42,19 @@ TEST(BulkSphere, ArgPi) {
 | 
											
												
													
														|  |  std::vector<std::tuple<double, std::complex<double>, double, double, char> >
 |  |  std::vector<std::tuple<double, std::complex<double>, double, double, char> >
 | 
											
												
													
														|  |      parameters_and_results{
 |  |      parameters_and_results{
 | 
											
												
													
														|  |          // x, {Re(m), Im(m)}, Qext, Qsca, test_name
 |  |          // x, {Re(m), Im(m)}, Qext, Qsca, test_name
 | 
											
												
													
														|  | -        // {0.099, {0.75, 0}, 7.417859e-06, 7.417859e-06, 'a'},
 |  | 
 | 
											
												
													
														|  | -        // {0.099, {1.75, 0}, 7.417859e-06, 7.417859e-06, 'z'},
 |  | 
 | 
											
												
													
														|  | -        // {0.101, {0.75, 0}, 8.033538e-06, 8.033538e-06, 'b'},
 |  | 
 | 
											
												
													
														|  | -        // {10, {0.75, 0}, 2.232265, 2.232265, 'c'},
 |  | 
 | 
											
												
													
														|  | -        // {100, {1.33, 1e-5}, 2.101321, 2.096594, 'e'},
 |  | 
 | 
											
												
													
														|  | -        // {0.055, {1.5, 1}, 0.10149104, 1.131687e-05, 'g'},
 |  | 
 | 
											
												
													
														|  | -        // {0.056, {1.5, 1}, 0.1033467, 1.216311e-05, 'h'},
 |  | 
 | 
											
												
													
														|  | -        // {100, {1.5, 1}, 2.097502, 1.283697, 'i'},
 |  | 
 | 
											
												
													
														|  | -        // {1, {10, 10}, 2.532993, 2.049405, 'k'},
 |  | 
 | 
											
												
													
														|  | -        // {1000, {0.75, 0}, 1.997908, 1.997908, 'd'},
 |  | 
 | 
											
												
													
														|  | 
 |  | +        {0.099, {0.75, 0}, 7.417859e-06, 7.417859e-06, 'a'},
 | 
											
												
													
														|  | 
 |  | +        {0.101, {0.75, 0}, 8.033538e-06, 8.033538e-06, 'b'},
 | 
											
												
													
														|  | 
 |  | +        {10, {0.75, 0}, 2.232265, 2.232265, 'c'},
 | 
											
												
													
														|  | 
 |  | +        {100, {1.33, 1e-5}, 2.101321, 2.096594, 'e'},
 | 
											
												
													
														|  | 
 |  | +        {0.055, {1.5, 1}, 0.10149104, 1.131687e-05, 'g'},
 | 
											
												
													
														|  | 
 |  | +        {0.056, {1.5, 1}, 0.1033467, 1.216311e-05, 'h'},
 | 
											
												
													
														|  | 
 |  | +        {100, {1.5, 1}, 2.097502, 1.283697, 'i'},
 | 
											
												
													
														|  | 
 |  | +        {1, {10, 10}, 2.532993, 2.049405, 'k'},
 | 
											
												
													
														|  | 
 |  | +        {1000, {0.75, 0}, 1.997908, 1.997908, 'd'},
 | 
											
												
													
														|  |          {100, {10, 10}, 2.071124, 1.836785, 'l'},
 |  |          {100, {10, 10}, 2.071124, 1.836785, 'l'},
 | 
											
												
													
														|  | -        // {10000, {1.33, 1e-5}, 2.004089, 1.723857, 'f'},
 |  | 
 | 
											
												
													
														|  | -        // {10000, {1.5, 1}, 2.004368, 1.236574, 'j'},
 |  | 
 | 
											
												
													
														|  | -        // {10000, {10, 10}, 2.005914, 1.795393, 'm'},
 |  | 
 | 
											
												
													
														|  | 
 |  | +        {10000, {1.33, 1e-5}, 2.004089, 1.723857, 'f'},
 | 
											
												
													
														|  | 
 |  | +        {10000, {1.5, 1}, 2.004368, 1.236574, 'j'},
 | 
											
												
													
														|  | 
 |  | +        {10000, {10, 10}, 2.005914, 1.795393, 'm'},
 | 
											
												
													
														|  |      };
 |  |      };
 | 
											
												
													
														|  |  //******************************************************************************
 |  |  //******************************************************************************
 | 
											
												
													
														|  |  TEST(BulkSphere, DISABLED_HandlesInput) {
 |  |  TEST(BulkSphere, DISABLED_HandlesInput) {
 | 
											
										
											
												
													
														|  | @@ -88,39 +87,25 @@ TEST(BulkSphere, MesoMie) {
 | 
											
												
													
														|  |    for (const auto& data : parameters_and_results) {
 |  |    for (const auto& data : parameters_and_results) {
 | 
											
												
													
														|  |      auto x = std::get<0>(data);
 |  |      auto x = std::get<0>(data);
 | 
											
												
													
														|  |      auto m = std::get<1>(data);
 |  |      auto m = std::get<1>(data);
 | 
											
												
													
														|  | -    //    auto Nstop = nmie::LeRu_near_field_cutoff(m*x)+1;
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -    nmie.SetLayersSize({x});
 |  | 
 | 
											
												
													
														|  | -    nmie.SetLayersIndex({m});
 |  | 
 | 
											
												
													
														|  | -    //    nmie.SetMaxTerms(Nstop);
 |  | 
 | 
											
												
													
														|  | -    nmie.calcScattCoeffs();
 |  | 
 | 
											
												
													
														|  | -    auto an_nmie = nmie.GetAn();
 |  | 
 | 
											
												
													
														|  | -    int nmax = an_nmie.size();
 |  | 
 | 
											
												
													
														|  | -    mesomie.calc_ab(nmax + 2,       // nmax
 |  | 
 | 
											
												
													
														|  | -                    x,              // R
 |  | 
 | 
											
												
													
														|  | -                    {x, 0},         // xd
 |  | 
 | 
											
												
													
														|  | -                    x * m,          // xm
 |  | 
 | 
											
												
													
														|  | -                    1.0 / (x * m),  // eps_d
 |  | 
 | 
											
												
													
														|  | -                    m / x,          // eps_m
 |  | 
 | 
											
												
													
														|  | -                    {0, 0},         // d_parallel
 |  | 
 | 
											
												
													
														|  | -                    {0, 0});        // d_perp
 |  | 
 | 
											
												
													
														|  | -    auto an_meso = mesomie.GetAn();
 |  | 
 | 
											
												
													
														|  | -    mesomie.calc_ab_classic(nmax + 2, x, m);
 |  | 
 | 
											
												
													
														|  | -    auto an_meso_cl = mesomie.GetAnClassic();
 |  | 
 | 
											
												
													
														|  | -    for (int n = 0; n < nmax && n < 200; n++) {
 |  | 
 | 
											
												
													
														|  | -      std::cout << n << an_nmie[n] << ' ' << an_meso[n + 1] << ' '
 |  | 
 | 
											
												
													
														|  | -                << an_meso_cl[n + 1] << std::endl;
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | 
 |  | +    mesomie.calc_ab(x,        // R
 | 
											
												
													
														|  | 
 |  | +                    {x, 0},   // xd
 | 
											
												
													
														|  | 
 |  | +                    x * m,    // xm
 | 
											
												
													
														|  | 
 |  | +                    {1, 0},   // eps_d
 | 
											
												
													
														|  | 
 |  | +                    m * m,    // eps_m
 | 
											
												
													
														|  | 
 |  | +                    {0, 0},   // d_parallel
 | 
											
												
													
														|  | 
 |  | +                    {0, 0});  // d_perp
 | 
											
												
													
														|  | 
 |  | +                              // eps_m * xd / (eps_d * xm)
 | 
											
												
													
														|  | 
 |  | +    mesomie.calc_Q();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    // double Qext = static_cast<double>(nmie.GetQext());
 |  | 
 | 
											
												
													
														|  | -    // double Qsca = static_cast<double>(nmie.GetQsca());
 |  | 
 | 
											
												
													
														|  | -    // double Qext_Du = std::get<2>(data);
 |  | 
 | 
											
												
													
														|  | -    // double Qsca_Du = std::get<3>(data);
 |  | 
 | 
											
												
													
														|  | -    // EXPECT_FLOAT_EQ(Qext_Du, Qext)
 |  | 
 | 
											
												
													
														|  | -    //     << "Extinction of the bulk sphere, test case:" << std::get<4>(data)
 |  | 
 | 
											
												
													
														|  | -    //     << "\nnmax_ = " << nmie.GetMaxTerms();
 |  | 
 | 
											
												
													
														|  | -    // EXPECT_FLOAT_EQ(Qsca_Du, Qsca)
 |  | 
 | 
											
												
													
														|  | -    //     << "Scattering of the bulk sphere, test case:" << std::get<4>(data);
 |  | 
 | 
											
												
													
														|  | 
 |  | +    double Qext = static_cast<double>(mesomie.GetQext());
 | 
											
												
													
														|  | 
 |  | +    double Qsca = static_cast<double>(mesomie.GetQsca());
 | 
											
												
													
														|  | 
 |  | +    double Qext_Du = std::get<2>(data);
 | 
											
												
													
														|  | 
 |  | +    double Qsca_Du = std::get<3>(data);
 | 
											
												
													
														|  | 
 |  | +    EXPECT_FLOAT_EQ(Qext_Du, Qext)
 | 
											
												
													
														|  | 
 |  | +        << "Extinction of the bulk sphere, test case:" << std::get<4>(data)
 | 
											
												
													
														|  | 
 |  | +        << "\nnmax_ = " << nmie.GetMaxTerms();
 | 
											
												
													
														|  | 
 |  | +    EXPECT_FLOAT_EQ(Qsca_Du, Qsca)
 | 
											
												
													
														|  | 
 |  | +        << "Scattering of the bulk sphere, test case:" << std::get<4>(data);
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  int main(int argc, char** argv) {
 |  |  int main(int argc, char** argv) {
 |