SquareRandomSetupTest.java

/**
 * Copyright (c) 2025, RTE (http://www.rte-france.com)
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 * SPDX-License-Identifier: MPL-2.0
 */
package com.powsybl.diagram.util.layout.setup;

import com.powsybl.diagram.util.layout.GraphTestData;
import com.powsybl.diagram.util.layout.geometry.LayoutContext;
import com.powsybl.diagram.util.layout.geometry.Point;
import com.powsybl.diagram.util.layout.geometry.Vector2D;
import org.jgrapht.Graph;
import org.jgrapht.graph.DefaultEdge;
import org.junit.jupiter.api.Test;

import java.util.Collection;

import static org.junit.jupiter.api.Assertions.*;

/**
 * @author Nathan Dissoubray {@literal <nathan.dissoubray at rte-france.com>}
 */
class SquareRandomSetupTest {

    @Test
    void run() {
        Graph<String, DefaultEdge> graph = GraphTestData.getGraph();
        SquareRandomSetup<String, DefaultEdge> squareRandomSetup = new SquareRandomSetup<>();
        LayoutContext<String, DefaultEdge> layoutContext = new LayoutContext<>(graph);
        squareRandomSetup.run(layoutContext);
        checkPointsPosition(layoutContext.getMovingPoints().values());
        checkPointsPosition(layoutContext.getFixedPoints().values());

    }

    private void checkPointsPosition(Collection<Point> points) {
        for (Point point : points) {
            Vector2D position = point.getPosition();
            assertTrue(position.getX() <= 0.5 && position.getX() >= -0.5);
            assertTrue(position.getY() <= 0.5 && position.getY() >= -0.5);
        }
    }
}