import { DataOverlayAnnotationFaker } from '@test/fakers/data-overlay-annotation.faker'; import { DataOverlayLengthFaker } from '@test/fakers/data-overlay-length.faker'; import { DataOverlayPolygonFaker } from '@test/fakers/data-overlay-polygon.faker'; import { DataOverlayAngleFaker } from '@test/fakers/data-overlay-angle.faker'; import { faker } from '@faker-js/faker'; import { InteractionType } from '@3cr/types-ts'; import { DataOverlay, DataOverlayAngle, DataOverlayAngleRaw, DataOverlayAnnotation, DataOverlayAnnotationRaw, DataOverlayInteraction, DataOverlayInteractionRaw, DataOverlayLength, DataOverlayLengthRaw, DataOverlayPolygon, DataOverlayPolygonRaw, DataOverlayRaw, } from '@3cr/viewer-types-ts'; export class DataOverlayInteractionFaker { static annotation( interaction: InteractionType, ): DataOverlayInteraction { return DataOverlayInteractionFaker.random( DataOverlayAnnotationFaker.random(), interaction, ); } static annotationRaw( interaction: InteractionType, ): DataOverlayInteractionRaw { return DataOverlayInteractionFaker.randomRaw( DataOverlayAnnotationFaker.randomRaw(), interaction, ); } static length( interaction: InteractionType, ): DataOverlayInteraction { return DataOverlayInteractionFaker.random( DataOverlayLengthFaker.random(), interaction, ); } static lengthRaw( interaction: InteractionType, ): DataOverlayInteractionRaw { return DataOverlayInteractionFaker.randomRaw( DataOverlayLengthFaker.randomRaw(), interaction, ); } static polygon( interaction: InteractionType, ): DataOverlayInteraction { return DataOverlayInteractionFaker.random( DataOverlayPolygonFaker.random(), interaction, ); } static polygonRaw( interaction: InteractionType, ): DataOverlayInteractionRaw { return DataOverlayInteractionFaker.randomRaw( DataOverlayPolygonFaker.randomRaw(), interaction, ); } static angle( interaction: InteractionType, ): DataOverlayInteraction { return DataOverlayInteractionFaker.random( DataOverlayAngleFaker.random(), interaction, ); } static angleRaw( interaction: InteractionType, ): DataOverlayInteractionRaw { return DataOverlayInteractionFaker.randomRaw( DataOverlayAngleFaker.randomRaw(), interaction, ); } private static random( data: T, type: InteractionType, ): DataOverlayInteraction { return { Version: faker.system.semver(), DataOverlay: data, Interaction: type, }; } private static randomRaw( data: T, type: InteractionType, ): DataOverlayInteractionRaw { return { Version: faker.system.semver(), DataOverlay: data, Interaction: type, }; } }