1   /* Copyright 2002-2025 CS GROUP
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.orekit.forces.gravity.potential;
18  
19  import org.junit.jupiter.api.Assertions;
20  import org.junit.jupiter.api.BeforeEach;
21  import org.junit.jupiter.api.Test;
22  import org.orekit.Utils;
23  import org.orekit.data.DataContext;
24  import org.orekit.errors.OrekitException;
25  import org.orekit.errors.OrekitMessages;
26  
27  import java.io.IOException;
28  import java.util.Map;
29  
30  public class AstronomicalAmplitudeReaderTest {
31  
32      @Test
33      void testHfFES2004()
34          {
35          AstronomicalAmplitudeReader reader =
36                  new AstronomicalAmplitudeReader("hf-fes2004.dat", 5, 2, 3, 1.0);
37          DataContext.getDefault().getDataProvidersManager().feed(reader.getSupportedNames(), reader);
38          Map<Integer, Double> astronomicalAmplitudesMap = reader.getAstronomicalAmplitudesMap();
39  
40          Assertions.assertEquals(81, astronomicalAmplitudesMap.size());
41  
42          // check all main waves
43          Assertions.assertEquals( 0.02793, astronomicalAmplitudesMap.get( 55565), 1.0e-10);
44          Assertions.assertEquals(-0.00492, astronomicalAmplitudesMap.get( 56554), 1.0e-10);
45          Assertions.assertEquals(-0.03100, astronomicalAmplitudesMap.get( 57555), 1.0e-10);
46          Assertions.assertEquals(-0.03518, astronomicalAmplitudesMap.get( 65455), 1.0e-10);
47          Assertions.assertEquals(-0.06663, astronomicalAmplitudesMap.get( 75555), 1.0e-10);
48          Assertions.assertEquals(-0.01276, astronomicalAmplitudesMap.get( 85455), 1.0e-10);
49          Assertions.assertEquals(-0.00204, astronomicalAmplitudesMap.get( 93555), 1.0e-10);
50          Assertions.assertEquals(-0.05020, astronomicalAmplitudesMap.get(135655), 1.0e-10);
51          Assertions.assertEquals(-0.26221, astronomicalAmplitudesMap.get(145555), 1.0e-10);
52          Assertions.assertEquals(-0.12203, astronomicalAmplitudesMap.get(163555), 1.0e-10);
53          Assertions.assertEquals( 0.36878, astronomicalAmplitudesMap.get(165555), 1.0e-10);
54          Assertions.assertEquals( 0.01601, astronomicalAmplitudesMap.get(235755), 1.0e-10);
55          Assertions.assertEquals( 0.12099, astronomicalAmplitudesMap.get(245655), 1.0e-10);
56          Assertions.assertEquals( 0.63192, astronomicalAmplitudesMap.get(255555), 1.0e-10);
57          Assertions.assertEquals( 0.29400, astronomicalAmplitudesMap.get(273555), 1.0e-10);
58          Assertions.assertEquals( 0.07996, astronomicalAmplitudesMap.get(275555), 1.0e-10);
59  
60          // check a few secondary waves
61          Assertions.assertEquals( 0.00231, astronomicalAmplitudesMap.get( 65445), 1.0e-10);
62          Assertions.assertEquals( 0.00229, astronomicalAmplitudesMap.get( 65465), 1.0e-10);
63          Assertions.assertEquals(-0.00375, astronomicalAmplitudesMap.get( 65555), 1.0e-10);
64          Assertions.assertEquals( 0.00414, astronomicalAmplitudesMap.get(155665), 1.0e-10);
65          Assertions.assertEquals( 0.00359, astronomicalAmplitudesMap.get(265555), 1.0e-10);
66          Assertions.assertEquals( 0.00447, astronomicalAmplitudesMap.get(265655), 1.0e-10);
67          Assertions.assertEquals( 0.00197, astronomicalAmplitudesMap.get(265665), 1.0e-10);
68          Assertions.assertEquals( 0.00195, astronomicalAmplitudesMap.get(285465), 1.0e-10);
69  
70      }
71  
72      @Test
73      void testEmptyFile() throws IOException {
74          try {
75              AstronomicalAmplitudeReader reader =
76                              new AstronomicalAmplitudeReader("empty-hf-fes2005.dat", 5, 2, 3, 1.0);
77              DataContext.getDefault().getDataProvidersManager().feed(reader.getSupportedNames(), reader);
78          } catch (OrekitException oe) {
79              Assertions.assertEquals(OrekitMessages.NOT_A_SUPPORTED_IERS_DATA_FILE, oe.getSpecifier());
80          }
81      }
82  
83      @BeforeEach
84      public void setUp() {
85          Utils.setDataRoot("tides");
86      }
87  
88  }