1   /* Copyright 2002-2022 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 java.io.IOException;
20  import java.util.Map;
21  
22  import org.junit.Assert;
23  import org.junit.Before;
24  import org.junit.Test;
25  import org.orekit.Utils;
26  import org.orekit.data.DataContext;
27  import org.orekit.errors.OrekitException;
28  import org.orekit.errors.OrekitMessages;
29  
30  public class AstronomicalAmplitudeReaderTest {
31  
32      @Test
33      public 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          Assert.assertEquals(81, astronomicalAmplitudesMap.size());
41  
42          // check all main waves
43          Assert.assertEquals( 0.02793, astronomicalAmplitudesMap.get( 55565), 1.0e-10);
44          Assert.assertEquals(-0.00492, astronomicalAmplitudesMap.get( 56554), 1.0e-10);
45          Assert.assertEquals(-0.03100, astronomicalAmplitudesMap.get( 57555), 1.0e-10);
46          Assert.assertEquals(-0.03518, astronomicalAmplitudesMap.get( 65455), 1.0e-10);
47          Assert.assertEquals(-0.06663, astronomicalAmplitudesMap.get( 75555), 1.0e-10);
48          Assert.assertEquals(-0.01276, astronomicalAmplitudesMap.get( 85455), 1.0e-10);
49          Assert.assertEquals(-0.00204, astronomicalAmplitudesMap.get( 93555), 1.0e-10);
50          Assert.assertEquals(-0.05020, astronomicalAmplitudesMap.get(135655), 1.0e-10);
51          Assert.assertEquals(-0.26221, astronomicalAmplitudesMap.get(145555), 1.0e-10);
52          Assert.assertEquals(-0.12203, astronomicalAmplitudesMap.get(163555), 1.0e-10);
53          Assert.assertEquals( 0.36878, astronomicalAmplitudesMap.get(165555), 1.0e-10);
54          Assert.assertEquals( 0.01601, astronomicalAmplitudesMap.get(235755), 1.0e-10);
55          Assert.assertEquals( 0.12099, astronomicalAmplitudesMap.get(245655), 1.0e-10);
56          Assert.assertEquals( 0.63192, astronomicalAmplitudesMap.get(255555), 1.0e-10);
57          Assert.assertEquals( 0.29400, astronomicalAmplitudesMap.get(273555), 1.0e-10);
58          Assert.assertEquals( 0.07996, astronomicalAmplitudesMap.get(275555), 1.0e-10);
59  
60          // check a few secondary waves
61          Assert.assertEquals( 0.00231, astronomicalAmplitudesMap.get( 65445), 1.0e-10);
62          Assert.assertEquals( 0.00229, astronomicalAmplitudesMap.get( 65465), 1.0e-10);
63          Assert.assertEquals(-0.00375, astronomicalAmplitudesMap.get( 65555), 1.0e-10);
64          Assert.assertEquals( 0.00414, astronomicalAmplitudesMap.get(155665), 1.0e-10);
65          Assert.assertEquals( 0.00359, astronomicalAmplitudesMap.get(265555), 1.0e-10);
66          Assert.assertEquals( 0.00447, astronomicalAmplitudesMap.get(265655), 1.0e-10);
67          Assert.assertEquals( 0.00197, astronomicalAmplitudesMap.get(265665), 1.0e-10);
68          Assert.assertEquals( 0.00195, astronomicalAmplitudesMap.get(285465), 1.0e-10);
69  
70      }
71  
72      @Test
73      public 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              Assert.assertEquals(OrekitMessages.NOT_A_SUPPORTED_IERS_DATA_FILE, oe.getSpecifier());
80          }
81      }
82  
83      @Before
84      public void setUp() {
85          Utils.setDataRoot("tides");
86      }
87  
88  }