Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/app/data-structures/technical.data.structures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ export enum TrainrunSectionText {
TrainrunSectionNumberOfStops,
}

/**
* Classifies which anchor (node) of a TrainrunSection is being evaluated.
*/
export enum TrainrunSectionNodeAnchor {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: the name of this enum is a bit long. I also think "node" and "anchor" could refer to the same concept, we could choose only one. Maybe we could do something like:

Suggested change
export enum TrainrunSectionNodeAnchor {
export enum TrainrunSectionAnchor {

This is just a proposition, maybe we can find something better

Source = "source",
Target = "target",
}

/**
* Represents a mapping of TrainrunSectionText and PointDTO used in the "cached" path : PathDto.
* The PathDto is used in the TrainrunSectionDto. The application (editor) recalculates after each
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ import {FilterService} from "../../services/ui/filter.service";
import {LoadPerlenketteService} from "../service/load-perlenkette.service";
import {EditorMode} from "../../view/editor-menu/editor-mode";
import {Vec2D} from "../../utils/vec2D";
import {PortAlignment} from "../../data-structures/technical.data.structures";
import {
PortAlignment,
TrainrunSectionNodeAnchor,
} from "../../data-structures/technical.data.structures";
import {
TRAINRUN_SECTION_PORT_SPAN_HORIZONTAL,
TRAINRUN_SECTION_PORT_SPAN_VERTICAL,
Expand Down Expand Up @@ -527,8 +530,14 @@ export class PerlenketteSectionComponent implements OnInit, AfterContentInit, On

getTravelTime() {
if (
TrainrunSectionsView.getNode(this.trainrunSection, true).isNonStop(this.trainrunSection) ||
TrainrunSectionsView.getNode(this.trainrunSection, false).isNonStop(this.trainrunSection)
TrainrunSectionsView.getNode(
this.trainrunSection,
TrainrunSectionNodeAnchor.Source,
).isNonStop(this.trainrunSection) ||
TrainrunSectionsView.getNode(
this.trainrunSection,
TrainrunSectionNodeAnchor.Target,
).isNonStop(this.trainrunSection)
) {
const cumulativeTravelTime = this.trainrunService.getCumulativeTravelTime(
this.trainrunSection,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ import {LoadPerlenketteService} from "../../../perlenkette/service/load-perlenke
import {NetzgrafikUnitTesting} from "../../../../integration-testing/netzgrafik.unit.testing";
import {EditorView} from "./editor.view";
import {EditorMainViewComponent} from "../editor-main-view.component";
import {TimeLockDto, TrainrunSectionText} from "../../../data-structures/technical.data.structures";
import {
TimeLockDto,
TrainrunSectionNodeAnchor,
TrainrunSectionText,
} from "../../../data-structures/technical.data.structures";
import {TrainrunSectionsView} from "./trainrunsections.view";
import {Vec2D} from "../../../utils/vec2D";
import {LevelOfDetailService} from "../../../services/ui/level.of.detail.service";
Expand Down Expand Up @@ -321,30 +325,30 @@ describe("TrainrunSection-View", () => {
it("TrainrunSectionsView.getPosition - 001", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(4);
const v = TrainrunSectionsView.getPosition(ts, false);
const v = TrainrunSectionsView.getPosition(ts, TrainrunSectionNodeAnchor.Target);
expect(v.getX()).toBe(734);
expect(v.getY()).toBe(144);
});

it("TrainrunSectionsView.getPosition - 002", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(4);
const v = TrainrunSectionsView.getPosition(ts, true);
const v = TrainrunSectionsView.getPosition(ts, TrainrunSectionNodeAnchor.Source);
expect(v.getX()).toBe(418);
expect(v.getY()).toBe(112);
});

it("TrainrunSectionsView.getNode - 001", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(4);
const v = TrainrunSectionsView.getNode(ts, false);
const v = TrainrunSectionsView.getNode(ts, TrainrunSectionNodeAnchor.Target);
expect(v.getId()).toBe(2);
});

it("TrainrunSectionsView.getNode - 002", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(4);
const v = TrainrunSectionsView.getNode(ts, true);
const v = TrainrunSectionsView.getNode(ts, TrainrunSectionNodeAnchor.Source);
expect(v.getId()).toBe(1);
});

Expand Down Expand Up @@ -964,50 +968,50 @@ describe("TrainrunSection-View", () => {
it("TrainrunSectionsView.enforceStartTextAnchor - 001", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(4);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, false);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Target);
expect(v1).toBe(false);
});

it("TrainrunSectionsView.enforceStartTextAnchor - 002", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(4);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, true);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Source);
expect(v1).toBe(true);
});

it("TrainrunSectionsView.enforceStartTextAnchor - 003", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(2);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, false);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Target);
expect(v1).toBe(false);
});

it("TrainrunSectionsView.enforceStartTextAnchor - 004", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(2);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, true);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Source);
expect(v1).toBe(true);
});

it("TrainrunSectionsView.enforceStartTextAnchor - 005", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(6);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, true);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Source);
expect(v1).toBe(false);
});

it("TrainrunSectionsView.enforceStartTextAnchor - 006", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(6);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, false);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Target);
expect(v1).toBe(true);
});

it("TrainrunSectionsView.enforceStartTextAnchor - 007", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(7);
ts.getPath()[1].setY(-1);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, true);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Source);
expect(v1).toBe(true);
});

Expand All @@ -1016,21 +1020,27 @@ describe("TrainrunSection-View", () => {
const ts = trainrunSectionService.getTrainrunSectionFromId(7);
ts.getPath()[3].setX(ts.getPath()[2].getX());
ts.getPath()[3].setY(ts.getPath()[2].getY() + 1000);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, false);
const v1 = TrainrunSectionsView.enforceStartTextAnchor(ts, TrainrunSectionNodeAnchor.Target);
expect(v1).toBe(true);
});

it("TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue - 001", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(2);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(ts, true);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(
ts,
TrainrunSectionNodeAnchor.Source,
);
expect(v1).toBe("translate(498,80) rotate(0)");
});

it("TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue - 002", () => {
dataService.loadNetzgrafikDto(NetzgrafikUnitTesting.getUnitTestNetzgrafik());
const ts = trainrunSectionService.getTrainrunSectionFromId(2);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(ts, false);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(
ts,
TrainrunSectionNodeAnchor.Target,
);
expect(v1).toBe("translate(654,112) rotate(0)");
});

Expand All @@ -1039,7 +1049,10 @@ describe("TrainrunSection-View", () => {
const ts = trainrunSectionService.getTrainrunSectionFromId(6);
ts.getPath()[3].setX(ts.getPath()[2].getX());
ts.getPath()[3].setY(ts.getPath()[2].getY() + 1000);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(ts, false);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(
ts,
TrainrunSectionNodeAnchor.Target,
);
expect(v1).toBe("translate(898,96) rotate(-90)");
});

Expand All @@ -1048,7 +1061,10 @@ describe("TrainrunSection-View", () => {
const ts = trainrunSectionService.getTrainrunSectionFromId(6);
ts.getPath()[1].setX(ts.getPath()[0].getX());
ts.getPath()[1].setY(ts.getPath()[0].getY());
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(ts, true);
const v1 = TrainrunSectionsView.getAdditionTextCloseToNodePositioningValue(
ts,
TrainrunSectionNodeAnchor.Source,
);
expect(v1).toBe("translate(1054,272) rotate(-90)");
});

Expand Down Expand Up @@ -1526,13 +1542,13 @@ describe("TrainrunSection-View", () => {
const v0 = TrainrunSectionsView.getTrainrunSectionNextAndDestinationNodeToShow(
trainrunSectionService.getTrainrunSectionFromId(0),
editorView,
false,
TrainrunSectionNodeAnchor.Target,
);
expect(v0).toBe("BN");
const v1 = TrainrunSectionsView.getTrainrunSectionNextAndDestinationNodeToShow(
trainrunSectionService.getTrainrunSectionFromId(0),
editorView,
true,
TrainrunSectionNodeAnchor.Source,
);
expect(v1).toBe("ZUE");
});
Expand Down
Loading