View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF 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.apache.commons.geometry.core;
18  
19  import java.util.ArrayList;
20  import java.util.Arrays;
21  import java.util.List;
22  
23  import org.apache.commons.geometry.core.partitioning.test.PartitionTestUtils;
24  import org.apache.commons.geometry.core.partitioning.test.TestLine;
25  import org.apache.commons.geometry.core.partitioning.test.TestPoint1D;
26  import org.apache.commons.geometry.core.partitioning.test.TestPoint2D;
27  import org.junit.jupiter.api.Assertions;
28  import org.junit.jupiter.api.Test;
29  
30  class EmbeddingTest {
31  
32      @Test
33      void testToSubspace_collection_emptyInput() {
34          // arrange
35          final TestLine line = TestLine.Y_AXIS;
36  
37          // act
38          final List<TestPoint1D> result = line.toSubspace(new ArrayList<>());
39  
40          // assert
41          Assertions.assertEquals(0, result.size());
42      }
43  
44      @Test
45      void testToSubspace_collection() {
46          // arrange
47          final List<TestPoint2D> pts = Arrays.asList(
48                      new TestPoint2D(0, 0),
49                      new TestPoint2D(1, 0.25),
50                      new TestPoint2D(0.5, 1)
51                  );
52  
53          final TestLine line = TestLine.Y_AXIS;
54  
55          // act
56          final List<TestPoint1D> result = line.toSubspace(pts);
57  
58          // assert
59          Assertions.assertEquals(3, result.size());
60          Assertions.assertEquals(0, result.get(0).getX(), PartitionTestUtils.EPS);
61          Assertions.assertEquals(0.25, result.get(1).getX(), PartitionTestUtils.EPS);
62          Assertions.assertEquals(1, result.get(2).getX(), PartitionTestUtils.EPS);
63      }
64  
65      @Test
66      void testToSpace_collection_emptyInput() {
67          // arrange
68          final TestLine line = TestLine.Y_AXIS;
69  
70          // act
71          final List<TestPoint2D> result = line.toSpace(new ArrayList<>());
72  
73          // assert
74          Assertions.assertEquals(0, result.size());
75      }
76  
77      @Test
78      void testToSpace_collection() {
79          // arrange
80          final List<TestPoint1D> pts = Arrays.asList(
81                      new TestPoint1D(0),
82                      new TestPoint1D(1),
83                      new TestPoint1D(0.5)
84                  );
85  
86          final TestLine line = TestLine.Y_AXIS;
87  
88          // act
89          final List<TestPoint2D> result = line.toSpace(pts);
90  
91          // assert
92          Assertions.assertEquals(3, result.size());
93          PartitionTestUtils.assertPointsEqual(new TestPoint2D(0, 0), result.get(0));
94          PartitionTestUtils.assertPointsEqual(new TestPoint2D(0, 1), result.get(1));
95          PartitionTestUtils.assertPointsEqual(new TestPoint2D(0, 0.5), result.get(2));
96      }
97  }