From def5b966f038e62ca6d015d34eac5219f1044852 Mon Sep 17 00:00:00 2001 From: LeonWehrhahn Date: Sat, 4 Jan 2025 09:25:11 +0100 Subject: [PATCH 1/3] Add UML image layout rendering --- .../core/generate_suggestions.py | 16 + .../module_modeling_llm/helius_render/api.py | 34 + .../config/diagram_elements.json | 7 + .../config/diagram_relationships.json | 3 + .../helius_render/config/markers.json | 9 + .../helius_render/models/bounds.py | 8 + .../helius_render/models/config_types.py | 26 + .../helius_render/models/diagram.py | 15 + .../helius_render/models/element.py | 11 + .../helius_render/models/relationship.py | 29 + .../renderers/element_renderer.py | 42 + .../renderers/relationship_renderer.py | 92 +++ .../helius_render/renderers/uml_renderer.py | 313 ++++++++ .../helius_render/services/diagram_service.py | 41 + .../helius_render/services/path_service.py | 741 ++++++++++++++++++ .../helius_render/styles/styles.css | 46 ++ .../helius_render/templates/element.svg.jinja | 78 ++ .../templates/relationship_path.svg.jinja | 27 + .../helius_render/utils/config_loader.py | 26 + .../helius_render/utils/constants.py | 8 + .../helius_render/utils/css_loader.py | 15 + .../helius_render/utils/template_manager.py | 12 + .../models/exercise_model.py | 3 +- .../utils/convert_to_athana_feedback_model.py | 15 +- .../utils/get_exercise_model.py | 7 +- .../modeling/module_modeling_llm/poetry.lock | 302 ++++++- .../module_modeling_llm/pyproject.toml | 2 + poetry.lock | 92 ++- pyproject.toml | 1 + 29 files changed, 1997 insertions(+), 24 deletions(-) create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_elements.json create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_relationships.json create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/markers.json create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/bounds.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/config_types.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/diagram.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/element.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/relationship.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/styles/styles.css create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/element.svg.jinja create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/relationship_path.svg.jinja create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/constants.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/css_loader.py create mode 100644 modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/template_manager.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py b/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py index 6db69e7d2..f28408b34 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py @@ -1,14 +1,17 @@ +import base64 from athena.schemas.grading_criterion import StructuredGradingCriterion from langchain_core.output_parsers import PydanticOutputParser from langchain_core.prompts import ChatPromptTemplate from athena import emit_meta from module_modeling_llm.config import BasicApproachConfig +from module_modeling_llm.helius_render.api import render_diagram from module_modeling_llm.models.assessment_model import AssessmentModel from module_modeling_llm.prompts.apollon_format_description import apollon_format_description from llm_core.utils.predict_and_parse import predict_and_parse from module_modeling_llm.prompts.graded_feedback_prompt import GradedFeedbackInputs from module_modeling_llm.models.exercise_model import ExerciseModel +from langchain_core.prompts import ChatPromptTemplate, HumanMessagePromptTemplate async def generate_suggestions( exercise_model: ExerciseModel, @@ -37,6 +40,19 @@ async def generate_suggestions( feedback_output_format=PydanticOutputParser(pydantic_object=AssessmentModel).get_format_instructions() ) + diagram_json = exercise_model.model + png_data = render_diagram(diagram_json, {value: key for key, value in exercise_model.element_id_mapping.items()}) + base64_image = base64.b64encode(png_data).decode("utf-8") + + chat_prompt = ChatPromptTemplate.from_messages([ + ("system", config.generate_suggestions_prompt.graded_feedback_system_message), + ("human", config.generate_suggestions_prompt.graded_feedback_human_message), + HumanMessagePromptTemplate.from_template( + [{'image_url': {'url': f'data:image/jpeg;base64,{base64_image}', 'detail': 'high'}}] + ) + ]) + + chat_prompt = ChatPromptTemplate.from_messages([ ("system", config.generate_suggestions_prompt.graded_feedback_system_message), ("human", config.generate_suggestions_prompt.graded_feedback_human_message)]) diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py new file mode 100644 index 000000000..6cf1757d5 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py @@ -0,0 +1,34 @@ +import json +from typing import Dict, Optional, cast +from module_modeling_llm.helius_render.models.diagram import UMLDiagram +from module_modeling_llm.helius_render.utils.config_loader import load_all_configs +from module_modeling_llm.helius_render.renderers.uml_renderer import UMLRenderer +from module_modeling_llm.helius_render.utils.css_loader import load_css + +# Global initialization +# Load configs and css once +_CONFIGS = load_all_configs() +_CSS = load_css() +_RENDERER = UMLRenderer(_CONFIGS, _CSS) + +def render_diagram(json_data: str, name_map: Optional[Dict[str, str]] = None) -> bytes: + + # Parse diagram + diagram_data = json.loads(json_data) + diagram = cast(UMLDiagram, diagram_data) + + if name_map: + for elem in diagram['elements'].values(): + elem_id = elem['id'] + if elem_id in name_map: + elem['name'] = name_map[elem_id] + + for rel in diagram['relationships'].values(): + rel_id = rel['id'] + if rel_id in name_map: + rel['name'] = name_map[rel_id] + + # Render using the pre-initialized renderer + png_data = _RENDERER.render_to_bytes(diagram) + + return png_data \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_elements.json b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_elements.json new file mode 100644 index 000000000..7b1a27d15 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_elements.json @@ -0,0 +1,7 @@ +{ + "default": { + "shape": "rectangle", + "class_name": "uml-element", + "text_class": "uml-element-name" + } + } \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_relationships.json b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_relationships.json new file mode 100644 index 000000000..4f4fd8f99 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_relationships.json @@ -0,0 +1,3 @@ +{ + "default": {} +} \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/markers.json b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/markers.json new file mode 100644 index 000000000..ef052c65b --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/markers.json @@ -0,0 +1,9 @@ +{ + "arrow": { + "path": "M 0 0 L 10 5 L 0 10 z", + "viewBox": "0 0 10 10", + "refX": "9", + "refY": "5", + "fill": "black" + } + } \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/bounds.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/bounds.py new file mode 100644 index 000000000..515ff79ed --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/bounds.py @@ -0,0 +1,8 @@ +from dataclasses import dataclass + +@dataclass +class Bounds: + x: float + y: float + width: float + height: float \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/config_types.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/config_types.py new file mode 100644 index 000000000..94f516ecb --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/config_types.py @@ -0,0 +1,26 @@ +from typing import TypedDict, Optional, Dict + +class ElementConfigEntry(TypedDict): + shape: str + class_name: str + text_class: str + +class RelationshipConfigEntry(TypedDict): + marker_end: Optional[str] + stroke_dasharray: Optional[str] + +class MarkerConfigEntry(TypedDict): + path: str + viewBox: str + refX: str + refY: str + fill: str + +ElementConfig = Dict[str, ElementConfigEntry] +RelationshipConfig = Dict[str, RelationshipConfigEntry] +MarkerConfig = Dict[str, MarkerConfigEntry] + +class AllConfigs(TypedDict): + elements: ElementConfig + relationships: RelationshipConfig + markers: MarkerConfig \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/diagram.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/diagram.py new file mode 100644 index 000000000..190c09522 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/diagram.py @@ -0,0 +1,15 @@ +from typing import Dict, Any, TypedDict +from .element import Element +from .relationship import Relationship + +class UMLDiagram(TypedDict): + id: str + title: str + elements: Dict[str, Element] + relationships: Dict[str, Relationship] + version: str + type: str + size: Dict[str, int] + interactive: Dict[str, Any] + assessments: Dict[str, Any] + lastUpdate: str diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/element.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/element.py new file mode 100644 index 000000000..9841a350e --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/element.py @@ -0,0 +1,11 @@ +from typing import Dict, List, Optional, TypedDict, Any + +class Element(TypedDict): + id: str + type: str + name: str + owner: Optional[str] + bounds: Dict[str, float] + attributes: Optional[List[str]] + methods: Optional[List[str]] + properties: Optional[Dict[str, Any]] diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/relationship.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/relationship.py new file mode 100644 index 000000000..555df6862 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/relationship.py @@ -0,0 +1,29 @@ +from typing import Dict, List, Optional, TypedDict + +class Message(TypedDict): + type: str + name: str + direction: str # 'target' or 'source' + +class EndpointData(TypedDict): + element: str + multiplicity: Optional[str] + role: Optional[str] + direction: Optional[str] + +class Relationship(TypedDict): + id: str + type: str + name: str + owner: Optional[str] + source: EndpointData + target: EndpointData + path: List[Dict[str, float]] + bounds: Dict[str, float] + isManuallyLayouted: Optional[bool] + stroke_dasharray: Optional[str] + marker_start: Optional[str] + marker_end: Optional[str] + messages: Optional[List[Message]] + _source_point: Optional[Dict[str, float]] + _target_point: Optional[Dict[str, float]] \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py new file mode 100644 index 000000000..264bb0def --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py @@ -0,0 +1,42 @@ +from typing import Dict +import xml.etree.ElementTree as ET + +from jinja2 import Template +from module_modeling_llm.helius_render.models.bounds import Bounds +from module_modeling_llm.helius_render.models.config_types import ElementConfig, ElementConfigEntry +from module_modeling_llm.helius_render.models.element import Element +from module_modeling_llm.helius_render.utils.template_manager import TemplateManager + +class ElementRenderer: + """ + Renders UML elements (like classes) into an SVG element using a Jinja2 template. + """ + + def __init__(self, element_config: ElementConfig, template_manager: TemplateManager): + self.element_config = element_config + self.template_manager = template_manager + + def render(self, element: Element, svg: ET.Element) -> None: + """ + Render a single UML element into the given SVG root. + + Args: + element (Element): The UML element to render. + svg (ET.Element): The SVG root element to append to. + elements_by_id (Dict[str, Element]): All elements keyed by ID (not always needed here). + """ + + elem_type = element.get('type', 'default') + config: ElementConfigEntry = self.element_config.get(elem_type, self.element_config['default']) + bounds = Bounds(**element['bounds']) + + template: Template = self.template_manager.get_template('element.svg.jinja') + svg_content: str = template.render( + element=element, + bounds=bounds, + element_shape=config['shape'], + element_class=config['class_name'], + element_text_class=config['text_class'] + ) + group: ET.Element = ET.fromstring(svg_content) + svg.append(group) \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py new file mode 100644 index 000000000..3eba6c7be --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py @@ -0,0 +1,92 @@ +from typing import Dict, List, Tuple +import xml.etree.ElementTree as ET +from module_modeling_llm.helius_render.services.path_service import compute_relationship_path +from module_modeling_llm.helius_render.models.element import Element +from module_modeling_llm.helius_render.models.relationship import Relationship +from module_modeling_llm.helius_render.models.config_types import RelationshipConfig +from module_modeling_llm.helius_render.utils.template_manager import TemplateManager + +class RelationshipRenderer: + """ + Renders UML relationships into SVG elements + """ + def __init__(self, relationship_config: RelationshipConfig, template_manager: TemplateManager) -> None: + self.rel_config = relationship_config + self.template_manager = template_manager + + def render_relationship(self, rel: Relationship, svg: ET.Element, elements_by_id: Dict[str, Element]) -> None: + """ + Render a UML relationship as an SVG path. + Args: + rel (Relationship): The relationship data. + svg (ET.Element): The SVG parent element to append the path to. + elements_by_id (Dict[str, Element]): Map of element IDs to element objects. + Raises: + ValueError: If source or target elements are missing. + """ + source_element = elements_by_id.get(rel['source']['element']) + target_element = elements_by_id.get(rel['target']['element']) + + if not source_element or not target_element: + raise ValueError(f"Invalid relationship {rel['id']}, missing source or target.") + + # Compute the path for the relationship + rel['path'] = compute_relationship_path(source_element, target_element, rel) + + # Compute a true midpoint along the entire polyline + mid_x, mid_y = self._compute_midpoint_along_path(rel['path']) + + template = self.template_manager.get_template('relationship_path.svg.jinja') + svg_content = template.render( + rel=rel, + path_d=self._create_path_string(rel['path']), + mid_x=mid_x, + mid_y=mid_y + ) + element = ET.fromstring(svg_content) + svg.append(element) + + def _create_path_string(self, points: List[Dict[str, float]]) -> str: + if not points: + return "" + path = f"M {points[0]['x']} {points[0]['y']}" + for p in points[1:]: + path += f" L {p['x']} {p['y']}" + return path + + def _compute_midpoint_along_path(self, path_points: List[Dict[str, float]]) -> Tuple[float, float]: + if not path_points: + return (0,0) + + # Compute total length of the polyline and store segments + total_length = 0.0 + segments = [] + for i in range(len(path_points)-1): + p1 = path_points[i] + p2 = path_points[i+1] + dx = p2['x'] - p1['x'] + dy = p2['y'] - p1['y'] + seg_length = (dx**2 + dy**2)**0.5 + segments.append((p1, p2, seg_length)) + total_length += seg_length + + # Target distance is half of total length + half_length = total_length / 2.0 + + # Walk along segments until we find the segment containing the midpoint + distance_covered = 0.0 + for (start, end, seg_length) in segments: + if distance_covered + seg_length == half_length: + # Midpoint lies exactly at the end of this segment + return (end['x'], end['y']) + elif distance_covered + seg_length > half_length: + # Midpoint lies within this segment + remaining = half_length - distance_covered + ratio = remaining / seg_length + mid_x = start['x'] + ratio * (end['x'] - start['x']) + mid_y = start['y'] + ratio * (end['y'] - start['y']) + return (mid_x, mid_y) + distance_covered += seg_length + + # Fallback: if something went wrong, return last point + return (path_points[-1]['x'], path_points[-1]['y']) diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py new file mode 100644 index 000000000..a32a5b78f --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py @@ -0,0 +1,313 @@ +import cairosvg +import xml.etree.ElementTree as ET +from typing import Tuple, List + +from PIL import Image, ImageDraw, ImageFont + +from module_modeling_llm.helius_render.models.config_types import AllConfigs +from module_modeling_llm.helius_render.models.diagram import UMLDiagram +from module_modeling_llm.helius_render.services.diagram_service import compute_diagram_bounds +from module_modeling_llm.helius_render.renderers.element_renderer import ElementRenderer +from module_modeling_llm.helius_render.renderers.relationship_renderer import RelationshipRenderer +from module_modeling_llm.helius_render.utils.template_manager import template_manager +from module_modeling_llm.helius_render.utils.constants import DEFAULT_DPI + + +class UMLRenderer: + def __init__(self, configs: AllConfigs, css: str): + self.configs = configs + self.markers_config = configs['markers'] + self.element_config = configs['elements'] + self.relationship_config = configs['relationships'] + self.css = css + # Always default to PIL's built-in font + self.name_font = ImageFont.load_default() + self.type_font = ImageFont.load_default() + self.rel_font = ImageFont.load_default() + + def render_to_bytes(self, diagram_data: UMLDiagram) -> bytes: + self.diagram = diagram_data + self.elements_by_id = self.diagram['elements'] + self.relationships = self.diagram['relationships'] + + # 1. Determine scale factor + scale_factor = self._determine_scale_factor() + + # 2. Apply scale if needed + if scale_factor > 1.0: + self._scale_diagram(scale_factor) + + # 3. Finalize layout (shift diagram to (0,0)) + self._finalize_layout() + + # 4. Wrap text now that final sizes are known and store in elements + self._wrap_all_element_texts() + + # 5. Create SVG and render elements and relationships + svg = self._create_svg() + + elem_renderer = ElementRenderer(self.element_config, template_manager) + for element in self.elements_by_id.values(): + if element['type'] not in ['ClassAttribute', 'ClassMethod']: + elem_renderer.render(element, svg) + + rel_renderer = RelationshipRenderer(self.relationship_config, template_manager) + for rel in self.relationships.values(): + rel_renderer.render_relationship(rel, svg, self.elements_by_id) + + # 6. Convert SVG to PNG + svg_str = ET.tostring(svg, encoding='unicode') + png_data = cairosvg.svg2png(bytestring=svg_str.encode('utf-8'), dpi=DEFAULT_DPI) + if png_data is None: + raise ValueError("Failed to convert SVG to PNG.") + + return png_data + + def _determine_scale_factor(self) -> float: + """ + Try to fit text by wrapping first, then scale only if necessary. + Returns scale factor (1.0 if no scaling needed). + """ + max_scale = 1.0 + + # First pass: Attempt text wrapping for all elements + for elem in self.elements_by_id.values(): + elem_w = elem['bounds']['width'] + elem_h = elem['bounds']['height'] + name_text = elem.get('name', '') + type_text = elem.get('type', '') + + # Try to fit text by wrapping + name_lines, name_w, name_h = self._wrap_text_until_fit( + name_text, self.name_font, elem_w, elem_h) + type_lines, type_w, type_h = [], 0, 0 + vertical_gap = 0 + + if type_text: + type_lines, type_w, type_h = self._wrap_text_until_fit( + type_text, self.type_font, elem_w, elem_h - name_h if name_h > 0 else elem_h) + if name_h > 0 and type_h > 0: + vertical_gap = 20 + + total_h = name_h + type_h + vertical_gap + total_w = max(name_w, type_w) + + # Store wrapped lines for later use + elem['_wrapped_name_lines'] = name_lines + elem['_wrapped_type_lines'] = type_lines + + # Only scale if wrapping couldn't make it fit + if total_w > elem_w or total_h > elem_h: + scale_w = (total_w / elem_w) if total_w > elem_w else 1.0 + scale_h = (total_h / elem_h) if total_h > elem_h else 1.0 + required_scale = max(scale_w, scale_h) + if required_scale > max_scale: + max_scale = required_scale + + # Handle relationships (these can't be wrapped, only scaled) + for rel in self.relationships.values(): + rel_name = rel.get('name', '') + if rel_name: + box_w, box_h = 40, 20 + rw, rh = self._text_bbox(rel_name, self.rel_font) + scale_w = (rw / box_w) if rw > box_w else 1.0 + scale_h = (rh / box_h) if rh > box_h else 1.0 + required_scale = max(scale_w, scale_h) + if required_scale > max_scale: + max_scale = required_scale + + return max_scale + + def _wrap_text_until_fit(self, text: str, font: ImageFont.ImageFont, + max_width: float, max_height: float) -> Tuple[List[str], float, float]: + """ + Iteratively wrap text until it fits within bounds or each word is on its own line. + Returns (wrapped_lines, total_width, total_height). + """ + if not text: + return [], 0, 0 + + words = text.split() + if not words: + return [], 0, 0 + + # Try initial wrapping at max width + lines = self.wrap_text_to_width(text, font, max_width) + max_line_w, total_h = self._measure_wrapped_text(lines, font) + + # If it fits, we're done + if max_line_w <= max_width and total_h <= max_height: + return lines, max_line_w, total_h + + # If the text is still too wide or tall, keep wrapping more aggressively + current_width = max_width + while current_width >= 10: # Don't try impossibly narrow widths + current_width *= 0.8 # Try progressively narrower widths + lines = self.wrap_text_to_width(text, font, current_width) + max_line_w, total_h = self._measure_wrapped_text(lines, font) + + if max_line_w <= max_width and total_h <= max_height: + return lines, max_line_w, total_h + + # If we still can't fit, put each word on its own line + lines = words + max_line_w, total_h = self._measure_wrapped_text(lines, font) + return lines, max_line_w, total_h + + def _measure_wrapped_text(self, lines: List[str], font: ImageFont.ImageFont) -> Tuple[float, float]: + """ + Measure the maximum width and total height of wrapped text lines. + Returns (max_width, total_height). + """ + if not lines: + return 0, 0 + + max_width = 0 + line_height = self._line_height(font) + total_height = line_height * len(lines) + + for line in lines: + w, _ = self._text_bbox(line, font) + max_width = max(max_width, w) + + return max_width, total_height + + def _wrap_all_element_texts(self): + """ + Formats any text that wasn't wrapped earlier (e.g., new elements) + """ + for elem in self.elements_by_id.values(): + if '_wrapped_name_lines' not in elem: + elem_w = elem['bounds']['width'] + name_text = elem.get('name', '') + name_lines = self.wrap_text_to_width(name_text, self.name_font, elem_w) if name_text else [] + elem['_wrapped_name_lines'] = name_lines + if '_wrapped_type_lines' not in elem: + elem_w = elem['bounds']['width'] + type_text = elem.get('type', '') + type_lines = self.wrap_text_to_width(type_text, self.type_font, elem_w) if type_text else [] + elem['_wrapped_type_lines'] = type_lines + + def _measure_block(self, text: str, font: ImageFont.ImageFont, max_width: float) -> Tuple[float, float]: + """ + Measure a text block when wrapped within max_width. + Returns (block_width, block_height). + """ + if not text: + return (0,0) + lines = self.wrap_text_to_width(text, font, max_width) + if not lines: + # If can't fit even a single word, measure as a single long line + w,h = self._text_bbox(text, font) + return (w,h) + max_line_w = 0 + line_height = self._line_height(font) + total_h = line_height * len(lines) + + for line in lines: + w,h = self._text_bbox(line, font) + if w > max_line_w: + max_line_w = w + + return (max_line_w, total_h) + + def _scale_diagram(self, scale_factor: float): + for elem in self.elements_by_id.values(): + elem['bounds']['x'] *= scale_factor + elem['bounds']['y'] *= scale_factor + elem['bounds']['width'] *= scale_factor + elem['bounds']['height'] *= scale_factor + + for rel in self.relationships.values(): + for p in rel.get('path', []): + p['x'] *= scale_factor + p['y'] *= scale_factor + + def _finalize_layout(self): + min_x, min_y, width, height = compute_diagram_bounds(self.diagram) + shift_x = -min_x + shift_y = -min_y + + self.width = width + self.height = height + + for elem in self.elements_by_id.values(): + elem['bounds']['x'] += shift_x + elem['bounds']['y'] += shift_y + + for rel in self.relationships.values(): + for p in rel['path']: + p['x'] += shift_x + p['y'] += shift_y + + def _create_svg(self): + svg = ET.Element('svg', { + 'xmlns': 'http://www.w3.org/2000/svg', + 'width': str(self.width), + 'height': str(self.height), + 'viewBox': f'0 0 {self.width} {self.height}' + }) + self._add_defs(svg) + return svg + + def _add_defs(self, svg): + defs = ET.SubElement(svg, 'defs') + for marker_id, marker_conf in self.markers_config.items(): + marker = ET.SubElement(defs, 'marker', { + 'id': marker_id, + 'viewBox': marker_conf['viewBox'], + 'refX': marker_conf['refX'], + 'refY': marker_conf['refY'], + 'markerWidth': '10', + 'markerHeight': '10', + 'orient': 'auto' + }) + ET.SubElement(marker, 'path', { + 'd': marker_conf['path'], + 'fill': marker_conf.get('fill', 'black'), + 'stroke': 'black' + }) + self._add_styles(defs) + + def _add_styles(self, defs): + if self.css.strip(): + style_element = ET.SubElement(defs, 'style', {'type': 'text/css'}) + style_element.text = self.css + else: + print("Warning: No CSS content provided. Styles will not be applied.") + + def wrap_text_to_width(self, text: str, font: ImageFont.ImageFont, max_width: float) -> List[str]: + if not text: + return [] + words = text.split() + if not words: + return [] + + img = Image.new('RGB', (1,1)) + draw = ImageDraw.Draw(img) + lines = [] + current_line = words[0] + + for word in words[1:]: + test_line = current_line + " " + word + left, top, right, bottom = draw.textbbox((0,0), test_line, font=font) + line_width = right - left + if line_width <= max_width: + current_line = test_line + else: + lines.append(current_line) + current_line = word + + lines.append(current_line) + return lines + + def _line_height(self, font: ImageFont.ImageFont) -> float: + # Estimate line height based on a single character + w, h = self._text_bbox("M", font) + return h * 1.2 + + def _text_bbox(self, text: str, font: ImageFont.ImageFont) -> Tuple[float, float]: + img = Image.new('RGB', (1,1)) + draw = ImageDraw.Draw(img) + left, top, right, bottom = draw.textbbox((0,0), text, font=font) + return (right - left, bottom - top) \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py new file mode 100644 index 000000000..1bd9a6950 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py @@ -0,0 +1,41 @@ + +from module_modeling_llm.helius_render.models.diagram import UMLDiagram +from module_modeling_llm.helius_render.models.bounds import Bounds +from module_modeling_llm.helius_render.utils.constants import (PADDING_LEFT, PADDING_RIGHT, PADDING_TOP, PADDING_BOTTOM, MARKER_SIZE) + +def compute_diagram_bounds(diagram: UMLDiagram): + """ + Compute the minimal bounding box that contains all elements and relationships in the diagram. + + Args: + diagram (UMLDiagram): The diagram data structure. + + Returns: + tuple: (min_x, min_y, width, height) representing the overall diagram bounds. + """ + + elements = diagram['elements'].values() + relationships = diagram['relationships'].values() + + min_x, min_y, max_x, max_y = float('inf'), float('inf'), float('-inf'), float('-inf') + + for elem in elements: + b = elem['bounds'] + min_x = min(min_x, b['x']) + min_y = min(min_y, b['y']) + max_x = max(max_x, b['x'] + b['width']) + max_y = max(max_y, b['y'] + b['height']) + + for rel in relationships: + for p in rel['path']: + min_x = min(min_x, p['x'] - MARKER_SIZE) + min_y = min(min_y, p['y'] - MARKER_SIZE) + max_x = max(max_x, p['x'] + MARKER_SIZE) + max_y = max(max_y, p['y'] + MARKER_SIZE) + + if min_x == float('inf'): + min_x, min_y, max_x, max_y = 0,0,0,0 + + width = (max_x - min_x) + PADDING_LEFT + PADDING_RIGHT + height = (max_y - min_y) + PADDING_TOP + PADDING_BOTTOM + return (min_x - PADDING_LEFT, min_y - PADDING_TOP, width, height) \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py new file mode 100644 index 000000000..d5233e915 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py @@ -0,0 +1,741 @@ +""" +DISCLAIMER: +This code is a Python adaptation of the original Apollon codebase, which was implemented in TypeScript. +Repository: https://github.com/ls1intum/Apollon. + +The purpose of this adaptation is to ensure that the server-side layout renderer replicates the diagram paths as closely as possible to those created by users in the Apollon editor. +""" + + +import math +from typing import Dict, List, Optional, Any +from module_modeling_llm.helius_render.utils.constants import ENTITY_MARGIN, OVERLAP_THRESHOLD +from module_modeling_llm.helius_render.models.element import Element +from module_modeling_llm.helius_render.models.relationship import Relationship + +# Directions enumeration as used in the original code for port/connection directions +class Direction: + Up = 'Up' + Down = 'Down' + Left = 'Left' + Right = 'Right' + Upright = 'Upright' + Upleft = 'Upleft' + Downright = 'Downright' + Downleft = 'Downleft' + Topright = 'Topright' + Topleft = 'Topleft' + Bottomright = 'Bottomright' + Bottomleft = 'Bottomleft' + +def compute_relationship_path(source_element: Element, target_element: Element, rel: Relationship) -> List[Dict[str, float]]: + """ + Compute the polyline path connecting two elements (source_element and target_element) based on their given relationship. + + The relationship includes hints about the direction of connection points (ports). + This function uses a complex routing logic to produce a set of points (x,y) that represent the path between source and target. + + :param source_element: The element acting as the source of the connection. + :param target_element: The element acting as the target of the connection. + :param rel: A dictionary-like relationship object containing direction hints for source and target. + :return: A list of dictionaries with 'x' and 'y' keys representing coordinates along the path. + """ + + # Extract direction hints from the relationship + source_direction = rel['source'].get('direction', Direction.Right) + target_direction = rel['target'].get('direction', Direction.Left) + + # Organize source and target data + source = {'element': source_element, 'direction': source_direction} + target = {'element': target_element, 'direction': target_direction} + + # Options control path routing strategy + # 'isStraight': Whether to consider directly connecting points if possible + # 'isVariable': Whether to attempt variable straight alignments if direct straight line isn't immediately possible + options = {'isStraight': False, 'isVariable': True} + + # Compute the initial path using the main routing function + path = compute_path(source, target, options) + # "Beautify" the resulting path by removing unnecessary bends and points + return beautify_path(path) + +def compute_path(source: Dict[str, Any], target: Dict[str, Any], options: Dict[str, bool]) -> List[Dict[str, float]]: + """ + Compute a path connecting source and target points, considering various options. + + This tries a few strategies: + 1. If 'isStraight' is set, try to connect source and target directly. + 2. If 'isVariable' is set and a straight alignment is possible (e.g., horizontally or vertically aligned), use it. + 3. Otherwise, resort to complex routing with margin-based detours around entity boxes. + + :param source: Dictionary containing 'element' (with bounds) and 'direction' for the source port. + :param target: Dictionary containing 'element' (with bounds) and 'direction' for the target port. + :param options: Options dict that can contain 'isStraight' and 'isVariable' booleans. + :return: A path as a list of (x,y) dictionaries. + """ + # Determine the precise port positions for source and target based on direction and element bounds + source_port_position = get_port_position(source['element']['bounds'], source['direction']) + target_port_position = get_port_position(target['element']['bounds'], target['direction']) + + # If a completely straight path is allowed and possible + if options.get('isStraight'): + straight_path = [source_port_position, target_port_position] + if points_are_equal(straight_path[0], straight_path[1]): + # Avoid zero-length lines by nudging the end point + straight_path[1]['x'] += 1 + straight_path[1]['y'] += 1 + return straight_path + + # If variable alignment is allowed, try to find a straight path with some constraints + if options.get('isVariable'): + straight = try_find_straight_path(source, target) + if straight is not None: + # If both points coincide, nudge the second point + if points_are_equal(straight[0], straight[1]): + straight[1]['x'] += 1 + straight[1]['y'] += 1 + return straight + + # If no straightforward solution is found, use a complex routing with margins + return route_with_margins(source, target, source_port_position, target_port_position) + +def route_with_margins(source: Dict[str, Any], target: Dict[str, Any], + source_port_position: Dict[str, float], + target_port_position: Dict[str, float]) -> List[Dict[str, float]]: + """ + Compute a path by navigating around the margins of source and target elements to avoid overlapping them. + + This logic tries to find a route along corners (extended by ENTITY_MARGIN) around the source and target boxes, + picking a sequence of intermediate points (corners) to ensure a clear path that doesn't intersect the boxes themselves. + + If direct connections fail, it expands the path along margin-inflated rectangles that represent possible routing edges. + + :param source: Dictionary with 'element' and 'direction' for the source endpoint. + :param target: Dictionary with 'element' and 'direction' for the target endpoint. + :param source_port_position: The actual coordinate of the source connection port. + :param target_port_position: The actual coordinate of the target connection port. + :return: A list of (x,y) points representing the path. + """ + # Create margin-inflated rectangles around source and target to route around + source_margin_rect = enlarge_rect(source['element']['bounds'], ENTITY_MARGIN) + target_margin_rect = enlarge_rect(target['element']['bounds'], ENTITY_MARGIN) + + # Slightly smaller margin rectangles (1px less) for intersection checks + source_margin_rect1px = enlarge_rect(source['element']['bounds'], ENTITY_MARGIN - 1) + target_margin_rect1px = enlarge_rect(target['element']['bounds'], ENTITY_MARGIN - 1) + + # Adjust start/end points outward depending on direction to start routing outside the margin + start_point_on_margin_box = adjust_point_on_margin_box(source_port_position, source['direction'], ENTITY_MARGIN) + end_point_on_margin_box = adjust_point_on_margin_box(target_port_position, target['direction'], ENTITY_MARGIN) + + # Find corners of source margin rect closest to the end point and vice versa + source_corner_closest_to_end = find_closest_point(get_corners(source_margin_rect), end_point_on_margin_box) + target_corner_closest_to_source = find_closest_point(get_corners(target_margin_rect), source_corner_closest_to_end) + + # Determine sequences of corners (queues) to try navigating around the source and target boxes + source_queue = determine_corner_queue( + source_margin_rect, source['direction'], start_point_on_margin_box, source_corner_closest_to_end + ) + target_queue = determine_corner_queue( + target_margin_rect, target['direction'], end_point_on_margin_box, target_corner_closest_to_source + ) + + # We'll build paths from start and end, then attempt to merge them + path_from_start = [source_port_position, start_point_on_margin_box] + path_from_end = [target_port_position, end_point_on_margin_box] + + current_start = start_point_on_margin_box.copy() + current_end = end_point_on_margin_box.copy() + + # Attempt to connect these two partial paths by testing if a direct line segment can be drawn at each iteration + while True: + # Check if we can connect directly without intersecting boxes + if can_connect_directly(current_start, current_end, source_margin_rect1px, target_margin_rect1px): + # If so, merge paths (align axes if needed) + merge_paths(path_from_start, path_from_end, current_start, current_end) + break + + # If direct connection not possible, advance along source queue if available + if source_queue: + next_corner = source_queue.pop(0) + path_from_start.append(next_corner) + current_start = next_corner + # Else try advancing along target queue + elif target_queue: + next_corner = target_queue.pop(0) + path_from_end.append(next_corner) + current_end = next_corner + else: + # As a fallback, if no routing is possible, just connect source and target directly + return [source_port_position, target_port_position] + + # Combine the two partial paths (path_from_start and reversed(path_from_end)) into a full route + full_path = path_from_start + list(reversed(path_from_end)) + return full_path + +def can_connect_directly(start: Dict[str, float], end: Dict[str, float], + source_rect: Dict[str, float], target_rect: Dict[str, float]) -> bool: + """ + Check if a direct line segment between start and end intersects the given source and target rectangles. + + :return: True if the direct line does not intersect either rectangle, False otherwise. + """ + return (not line_segment_intersects_rect(start, end, source_rect) + and not line_segment_intersects_rect(start, end, target_rect)) + +def merge_paths(path_from_start: List[Dict[str, float]], path_from_end: List[Dict[str, float]], + current_start: Dict[str, float], current_end: Dict[str, float]) -> None: + """ + Merge two partial paths by adding intermediate points if necessary to create a neat connection. + + This tries to align the last segment of path_from_start and the first segment of path_from_end either horizontally + or vertically. If both segments are along the same axis, create a 'bridge' by adding intermediate points at midpoints. + + :param path_from_start: The partial path starting from the source. + :param path_from_end: The partial path starting from the target. + :param current_start: The current endpoint of the start side. + :param current_end: The current endpoint of the end side. + """ + start_axis = get_axis_for_path_segment(path_from_start[-2], path_from_start[-1]) + end_axis = get_axis_for_path_segment(path_from_end[-2], path_from_end[-1]) + + # If both ends are horizontally aligned + if start_axis == 'HORIZONTAL' and end_axis == 'HORIZONTAL': + middle_x = (current_start['x'] + current_end['x']) / 2 + # Insert bend points to gracefully connect horizontally + path_from_start.append({'x': middle_x, 'y': current_start['y']}) + path_from_start.append({'x': middle_x, 'y': current_end['y']}) + # If both ends are vertically aligned + elif start_axis == 'VERTICAL' and end_axis == 'VERTICAL': + middle_y = (current_start['y'] + current_end['y']) / 2 + # Insert bend points to gracefully connect vertically + path_from_start.append({'x': current_start['x'], 'y': middle_y}) + path_from_start.append({'x': current_end['x'], 'y': middle_y}) + # If one end is horizontal and the other vertical, we can connect directly using one bend + elif start_axis == 'HORIZONTAL' and end_axis == 'VERTICAL': + path_from_start.append({'x': current_end['x'], 'y': current_start['y']}) + else: + # Otherwise, connect by aligning along one coordinate + path_from_start.append({'x': current_start['x'], 'y': current_end['y']}) + +def get_port_position(bounds: Dict[str, float], direction: str) -> Dict[str, float]: + """ + Compute the coordinate of the port on an element's bounds based on the given direction. + + Directions indicate which side or corner of the rectangle is used to connect. For example: + - Up: connect at midpoint of the top edge + - Down: midpoint of the bottom edge + - Left/Right: midpoints of left/right edges respectively + - Other directions are variations of corners or fractional positions on the edges. + """ + x = bounds['x'] + y = bounds['y'] + w = bounds['width'] + h = bounds['height'] + + # Map direction to a specific point on the element's rectangle + if direction == Direction.Up: + return {'x': x + w/2, 'y': y} + elif direction == Direction.Down: + return {'x': x + w/2, 'y': y + h} + elif direction == Direction.Left: + return {'x': x, 'y': y + h/2} + elif direction == Direction.Right: + return {'x': x + w, 'y': y + h/2} + elif direction == Direction.Upright: + return {'x': x + w, 'y': y} + elif direction == Direction.Upleft: + return {'x': x, 'y': y} + elif direction == Direction.Downright: + return {'x': x + w, 'y': y + h} + elif direction == Direction.Downleft: + return {'x': x, 'y': y + h} + elif direction == Direction.Topright: + return {'x': x + w * 0.75, 'y': y} + elif direction == Direction.Topleft: + return {'x': x + w * 0.25, 'y': y} + elif direction == Direction.Bottomright: + return {'x': x + w * 0.75, 'y': y + h} + elif direction == Direction.Bottomleft: + return {'x': x + w * 0.25, 'y': y + h} + else: + # Fallback: center if direction not recognized + return {'x': x + w/2, 'y': y + h/2} + +def adjust_point_on_margin_box(point: Dict[str, float], direction: str, margin: float) -> Dict[str, float]: + """ + Adjust a point outward by a given margin depending on the direction. + For example, if the direction is Up, we move the point up by 'margin' units. + This creates a start/end point outside the entity margin box, ensuring room to route the line. + + :param point: The initial point (on the element border). + :param direction: The direction from the element. + :param margin: The margin distance to move outward. + :return: The adjusted point. + """ + adjusted = point.copy() + if direction in [Direction.Up, Direction.Topleft, Direction.Topright]: + adjusted['y'] -= margin + elif direction in [Direction.Down, Direction.Bottomleft, Direction.Bottomright]: + adjusted['y'] += margin + elif direction in [Direction.Left, Direction.Upleft, Direction.Downleft]: + adjusted['x'] -= margin + elif direction in [Direction.Right, Direction.Upright, Direction.Downright]: + adjusted['x'] += margin + return adjusted + +def enlarge_rect(rect: Dict[str, float], padding: float) -> Dict[str, float]: + """ + Enlarge a given rectangle by 'padding' units on all sides. + + :param rect: The original rectangle defined by (x, y, width, height). + :param padding: How much to expand each side by. + :return: The enlarged rectangle. + """ + return { + 'x': rect['x'] - padding, + 'y': rect['y'] - padding, + 'width': rect['width'] + 2 * padding, + 'height': rect['height'] + 2 * padding + } + +def get_corners(rect: Dict[str, float]) -> List[Dict[str, float]]: + """ + Return a list of the four corners of a rectangle in order: top-left, top-right, bottom-right, bottom-left. + """ + return [ + {'x': rect['x'], 'y': rect['y']}, + {'x': rect['x'] + rect['width'], 'y': rect['y']}, + {'x': rect['x'] + rect['width'], 'y': rect['y'] + rect['height']}, + {'x': rect['x'], 'y': rect['y'] + rect['height']} + ] + +def find_closest_point(candidates: List[Dict[str, float]], target: Dict[str, float]) -> Dict[str, float]: + """ + Find the candidate point closest to the target point using Euclidean distance. + + :param candidates: A list of (x,y) points. + :param target: The reference point. + :return: The closest candidate point. + """ + min_dist = float('inf') + closest = candidates[0] + for c in candidates: + d = math.hypot(c['x'] - target['x'], c['y'] - target['y']) + if d < min_dist: + min_dist = d + closest = c + return closest + +def determine_corner_queue(rect: Dict[str, float], direction: str, start: Dict[str, float], end: Dict[str, float]) -> List[Dict[str, float]]: + """ + Determine the sequence (queue) of corners to attempt routing through, depending on the direction + and the relative position of end point. This tries to find a shorter path around the rectangle corners. + + The logic chooses a clockwise or counterclockwise ordering of corners and selects the shorter route. + + :param rect: Margin rectangle around the element. + :param direction: The direction from which we start (source/target direction). + :param start: The starting point from which we're determining the corner route. + :param end: The end reference point (we pick corners that lead us closer to this end). + :return: A list of corner points in the chosen order. + """ + corners = get_corners(rect) + + # Based on direction, define a clockwise and counter-clockwise corner order + if direction in [Direction.Up, Direction.Topleft, Direction.Topright]: + clockwise = [corners[1], corners[2], corners[3], corners[0]] + counter = [corners[0], corners[3], corners[2], corners[1]] + elif direction in [Direction.Right, Direction.Upright, Direction.Downright]: + clockwise = [corners[2], corners[3], corners[0], corners[1]] + counter = [corners[1], corners[0], corners[3], corners[2]] + elif direction in [Direction.Down, Direction.Bottomleft, Direction.Bottomright]: + clockwise = [corners[3], corners[0], corners[1], corners[2]] + counter = [corners[2], corners[1], corners[0], corners[3]] + elif direction in [Direction.Left, Direction.Upleft, Direction.Downleft]: + clockwise = [corners[0], corners[1], corners[2], corners[3]] + counter = [corners[3], corners[2], corners[1], corners[0]] + else: + # Default fallback + clockwise = corners + counter = list(reversed(corners)) + + # Trim the sequences so they only go as far as the corner closest to the end point + clockwise = shorten_queue_to_corner(clockwise, end) + counter = shorten_queue_to_corner(counter, end) + + # Compute path lengths for both options and choose the shorter one + path_length_cw = compute_path_length([start] + clockwise) + path_length_ccw = compute_path_length([start] + counter) + + return clockwise if path_length_cw < path_length_ccw else counter + +def shorten_queue_to_corner(queue: List[Dict[str,float]], corner: Dict[str,float]) -> List[Dict[str,float]]: + """ + Cut the queue of corners at the specified corner if it exists in the queue. + + :param queue: A list of corner points. + :param corner: A corner point to cut at. + :return: The shortened queue ending at the given corner. + """ + if corner in queue: + idx = queue.index(corner) + return queue[:idx+1] + return queue + +def compute_path_length(path: List[Dict[str, float]]) -> float: + """ + Compute the total Euclidean length of a path defined by a sequence of points. + + :param path: List of (x,y) points. + :return: The total length. + """ + length = 0 + for i in range(len(path)-1): + length += math.hypot(path[i+1]['x'] - path[i]['x'], path[i+1]['y'] - path[i]['y']) + return length + +def line_segment_intersects_rect(p: Dict[str, float], q: Dict[str, float], rect: Dict[str, float]) -> bool: + """ + Check if a line segment defined by points p and q intersects any edge of the rectangle. + + :return: True if the segment intersects the rectangle boundary, else False. + """ + # Define the 4 edges of the rectangle + rect_lines = [ + ( {'x': rect['x'], 'y': rect['y']}, + {'x': rect['x'] + rect['width'], 'y': rect['y']} ), + ( {'x': rect['x'] + rect['width'], 'y': rect['y']}, + {'x': rect['x'] + rect['width'], 'y': rect['y'] + rect['height']} ), + ( {'x': rect['x'] + rect['width'], 'y': rect['y'] + rect['height']}, + {'x': rect['x'], 'y': rect['y'] + rect['height']} ), + ( {'x': rect['x'], 'y': rect['y'] + rect['height']}, + {'x': rect['x'], 'y': rect['y']} ), + ] + # Check intersection with each edge + for r_p, r_q in rect_lines: + if line_segments_intersect(p, q, r_p, r_q): + return True + return False + +def line_segments_intersect(p1, q1, p2, q2) -> bool: + """ + Determine if two line segments (p1-q1 and p2-q2) intersect. + + Uses orientation tests and on-segment checks to see if the segments share any point. + """ + def orientation(a, b, c): + val = (b['y'] - a['y']) * (c['x'] - b['x']) - (b['x'] - a['x']) * (c['y'] - b['y']) + if abs(val) < 1e-6: + return 0 + return 1 if val > 0 else 2 + + def on_segment(a, b, c): + return (min(a['x'], c['x']) <= b['x'] <= max(a['x'], c['x']) + and min(a['y'], c['y']) <= b['y'] <= max(a['y'], c['y'])) + + # Compute orientations + o1 = orientation(p1, q1, p2) + o2 = orientation(p1, q1, q2) + o3 = orientation(p2, q2, p1) + o4 = orientation(p2, q2, q1) + + # General case: if orientations differ, there's an intersection + if o1 != o2 and o3 != o4: + return True + # Special cases: checking collinear points lying on segments + if o1 == 0 and on_segment(p1, p2, q1): + return True + if o2 == 0 and on_segment(p1, q2, q1): + return True + if o3 == 0 and on_segment(p2, p1, q2): + return True + if o4 == 0 and on_segment(p2, q1, q2): + return True + + return False + +def points_are_equal(p: Dict[str, float], q: Dict[str, float]) -> bool: + """ + Check if two points are effectively the same, allowing for a negligible floating-point error. + """ + return is_almost_zero(p['x'] - q['x']) and is_almost_zero(p['y'] - q['y']) + +def is_almost_zero(value: float) -> bool: + """ + Check if a value is close to zero, within a small epsilon. + """ + return abs(value) < 1e-6 + +def try_find_straight_path(source: Dict[str, Any], target: Dict[str, Any]) -> Optional[List[Dict[str, float]]]: + """ + Attempt to find a straight (directly horizontal or vertical) path between two rectangles, + given direction hints for the handles. This checks for overlapping ranges and alignment conditions. + + This tries: + - Horizontal alignment if source's direction is Right and target's is Left (or vice versa), + and their vertical spans overlap sufficiently. + - Vertical alignment if source's direction is Down and target's is Up (or vice versa), + and their horizontal spans overlap. + + If a suitable straight line is found, return two points defining it. Otherwise, return None. + """ + source_bounds = source['element']['bounds'] + target_bounds = target['element']['bounds'] + source_edge = determine_handle_edge(source['direction']) + target_edge = determine_handle_edge(target['direction']) + + # Horizontal alignment attempt + if source_edge == Direction.Right and target_edge == Direction.Left and target_bounds['x'] >= source_bounds['x'] + source_bounds['width']: + overlap_y = compute_overlap( + [source_bounds['y'], source_bounds['y'] + max(OVERLAP_THRESHOLD, source_bounds['height'])], + [target_bounds['y'], target_bounds['y'] + max(OVERLAP_THRESHOLD, target_bounds['height'])] + ) + if overlap_y and (overlap_y[1] - overlap_y[0] >= OVERLAP_THRESHOLD): + mid_y = (overlap_y[0] + overlap_y[1]) / 2 + return [{'x': source_bounds['x'] + source_bounds['width'], 'y': mid_y}, + {'x': target_bounds['x'], 'y': mid_y}] + + if source_edge == Direction.Left and target_edge == Direction.Right and source_bounds['x'] >= target_bounds['x'] + target_bounds['width']: + overlap_y = compute_overlap( + [source_bounds['y'], source_bounds['y'] + max(OVERLAP_THRESHOLD, source_bounds['height'])], + [target_bounds['y'], target_bounds['y'] + max(OVERLAP_THRESHOLD, target_bounds['height'])] + ) + if overlap_y and (overlap_y[1] - overlap_y[0] >= OVERLAP_THRESHOLD): + mid_y = (overlap_y[0] + overlap_y[1]) / 2 + return [{'x': source_bounds['x'], 'y': mid_y}, + {'x': target_bounds['x'] + target_bounds['width'], 'y': mid_y}] + + # Vertical alignment attempt + if source_edge == Direction.Down and target_edge == Direction.Up and target_bounds['y'] >= source_bounds['y'] + source_bounds['height']: + overlap_x = compute_overlap( + [source_bounds['x'], source_bounds['x'] + source_bounds['width']], + [target_bounds['x'], target_bounds['x'] + target_bounds['width']] + ) + if overlap_x and (overlap_x[1] - overlap_x[0] >= OVERLAP_THRESHOLD): + mid_x = (overlap_x[0] + overlap_x[1]) / 2 + return [{'x': mid_x, 'y': source_bounds['y'] + source_bounds['height']}, + {'x': mid_x, 'y': target_bounds['y']}] + + if source_edge == Direction.Up and target_edge == Direction.Down and source_bounds['y'] >= target_bounds['y'] + target_bounds['height']: + overlap_x = compute_overlap( + [source_bounds['x'], source_bounds['x'] + source_bounds['width']], + [target_bounds['x'], target_bounds['x'] + target_bounds['width']] + ) + if overlap_x and (overlap_x[1] - overlap_x[0] >= OVERLAP_THRESHOLD): + mid_x = (overlap_x[0] + overlap_x[1]) / 2 + return [{'x': mid_x, 'y': source_bounds['y']}, + {'x': mid_x, 'y': target_bounds['y'] + target_bounds['height']}] + + return None + +def determine_handle_edge(direction: str) -> str: + """ + Given a handle direction (which might be a corner like 'Upleft' or just 'Left'), + determine the main edge axis (Up, Down, Left, or Right) it corresponds to. + """ + if direction in [Direction.Left, Direction.Upleft, Direction.Downleft]: + return Direction.Left + elif direction in [Direction.Right, Direction.Upright, Direction.Downright]: + return Direction.Right + elif direction in [Direction.Up, Direction.Topleft, Direction.Topright]: + return Direction.Up + elif direction in [Direction.Down, Direction.Bottomleft, Direction.Bottomright]: + return Direction.Down + return Direction.Right + +def compute_overlap(range1: List[float], range2: List[float]) -> Optional[List[float]]: + """ + Compute the overlapping segment between two 1D ranges (if any). + + :param range1: [start1, end1] + :param range2: [start2, end2] + :return: The overlapping [start, end] if they overlap, otherwise None. + """ + from1, to1 = range1 + from2, to2 = range2 + larger_from = max(from1, from2) + smaller_to = min(to1, to2) + if larger_from <= smaller_to: + return [larger_from, smaller_to] + return None + +def beautify_path(path: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Clean up the generated path by: + 1. Removing consecutive identical points. + 2. Merging consecutive segments aligned on the same axis. + 3. Flattening 'waves' or unnecessary zig-zags. + 4. Removing unnecessary transit nodes that don't change direction. + + :param path: The original path. + :return: A simplified, cleaner path. + """ + path = remove_consecutive_identical_points(path) + path = merge_consecutive_same_axis_deltas(path) + path = flatten_waves(path) + path = remove_transit_nodes(path) + return path + +def remove_consecutive_identical_points(path: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Remove any repeated points that follow one another directly. + """ + new_path = [] + for p in path: + if not new_path or not points_are_equal(p, new_path[-1]): + new_path.append(p) + return new_path + +def merge_consecutive_same_axis_deltas(path: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Merge consecutive line segments that lie along the same axis (purely horizontal or vertical) + into a single straight segment. This avoids unnecessary intermediate points. + """ + deltas = compute_path_deltas(path) + if len(deltas) <= 1: + return path + + new_deltas = [] + for delta in deltas: + prev = new_deltas[-1] if new_deltas else None + if not prev: + new_deltas.append(delta) + # If current and previous deltas are both horizontal or both vertical, merge them + elif (is_almost_zero(prev['dx']) and is_almost_zero(delta['dx'])) or \ + (is_almost_zero(prev['dy']) and is_almost_zero(delta['dy'])): + new_deltas[-1] = {'dx': prev['dx'] + delta['dx'], 'dy': prev['dy'] + delta['dy']} + else: + new_deltas.append(delta) + return create_path_from_deltas(path[0], new_deltas) + +def flatten_waves(path: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Attempt to remove 'waves' or zig-zag patterns in the path by simplifying delta patterns. + + This looks for certain patterns of horizontal/vertical/horizontal (or vertical/horizontal/vertical) moves + that can be simplified into straighter segments. + """ + if len(path) < 4: + return path + deltas = compute_path_deltas(path) + simplified = simplify_deltas(deltas) + return create_path_from_deltas(path[0], simplified) + +def remove_transit_nodes(path: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Remove transit nodes that lie perfectly on a straight line between their neighbors, + reducing the path complexity. + """ + for i in range(len(path)-2): + p,q,r = path[i], path[i+1], path[i+2] + if is_horizontal_line_segment(p,q,r) or is_vertical_line_segment(p,q,r): + # Recursively remove and attempt again, ensuring all unnecessary nodes are cleaned up + return remove_transit_nodes(path[:i+1] + path[i+2:]) + return path + +def compute_path_deltas(path: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Compute delta vectors between consecutive points in the path. + Each delta is {dx, dy} indicating the change from one point to the next. + """ + deltas = [] + for i in range(len(path)-1): + dx = path[i+1]['x'] - path[i]['x'] + dy = path[i+1]['y'] - path[i]['y'] + deltas.append({'dx': dx, 'dy': dy}) + return deltas + +def create_path_from_deltas(start: Dict[str, float], deltas: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Reconstruct a path from a starting point and a list of deltas. + """ + points = [start] + current = start.copy() + for d in deltas: + current = {'x': current['x'] + d['dx'], 'y': current['y'] + d['dy']} + points.append(current) + return points + +def simplify_deltas(deltas: List[Dict[str, float]]) -> List[Dict[str, float]]: + """ + Look for 'wave' patterns in the deltas and try to simplify them. + + This is a more complex cleanup step that reduces unnecessary directional changes: + For example, a pattern like horizontal->vertical->horizontal that forms a small 'wave' + is replaced by a simpler two-segment route if possible. + """ + i = 0 + while i < len(deltas) - 3: + d1, d2, d3, d4 = deltas[i], deltas[i+1], deltas[i+2], deltas[i+3] + + # First pattern: Horizontal, vertical, horizontal segment forming a wave + if ( + is_almost_zero(d1['dy']) and + is_almost_zero(d2['dx']) and + is_almost_zero(d3['dy']) and + math.copysign(1, d1['dx']) == math.copysign(1, d3['dx']) and + math.copysign(1, d2['dy']) == math.copysign(1, d4['dy']) + ): + new_deltas = ( + deltas[:i] + + [ + {'dx': d1['dx'] + d3['dx'], 'dy': 0}, + {'dx': 0, 'dy': d2['dy']} + ] + + deltas[i+4:] + ) + return simplify_deltas(new_deltas) + + # Second pattern: Vertical, horizontal, vertical wave + if ( + is_almost_zero(d1['dx']) and + is_almost_zero(d2['dy']) and + is_almost_zero(d3['dx']) and + math.copysign(1, d1['dy']) == math.copysign(1, d3['dy']) and + math.copysign(1, d2['dx']) == math.copysign(1, d4['dx']) + ): + new_deltas = ( + deltas[:i] + + [ + {'dx': 0, 'dy': d1['dy'] + d3['dy']}, + {'dx': d2['dx'], 'dy': 0} + ] + + deltas[i+4:] + ) + return simplify_deltas(new_deltas) + + i += 1 + return deltas + +def get_axis_for_path_segment(p1: Dict[str, float], p2: Dict[str, float]) -> Optional[str]: + """ + Determine if a segment between p1 and p2 is purely horizontal or vertical. + + :return: 'HORIZONTAL' if the segment is along the x-axis, 'VERTICAL' if along the y-axis, or None otherwise. + """ + if is_almost_zero(p1['x'] - p2['x']) and not is_almost_zero(p1['y'] - p2['y']): + return 'VERTICAL' + elif is_almost_zero(p1['y'] - p2['y']) and not is_almost_zero(p1['x'] - p2['x']): + return 'HORIZONTAL' + return None + +def is_horizontal_line_segment(p, q, r): + """ + Check if three points p, q, r lie on the same horizontal line and q is between p and r on the x-axis. + """ + return (are_almost_equal(p['y'], q['y']) and are_almost_equal(q['y'], r['y']) + and ((p['x'] >= q['x'] >= r['x']) or (p['x'] <= q['x'] <= r['x']))) + +def is_vertical_line_segment(p, q, r): + """ + Check if three points p, q, r lie on the same vertical line and q is between p and r on the y-axis. + """ + return (are_almost_equal(p['x'], q['x']) and are_almost_equal(q['x'], r['x']) + and ((p['y'] >= q['y'] >= r['y']) or (p['y'] <= q['y'] <= r['y']))) + +def are_almost_equal(a, b): + """ + Check if two floating-point values are nearly equal. + """ + return is_almost_zero(a - b) \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/styles/styles.css b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/styles/styles.css new file mode 100644 index 000000000..8c7384a01 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/styles/styles.css @@ -0,0 +1,46 @@ + +/* General Styles */ +text { + font-family: Arial, sans-serif; + font-size: 12px; +} + +.uml-element-name { + font-size: 18px; + font-weight: bold; +} + +.uml-element-type { + font-size: 14px; + font-style: italic; + font-weight: normal; +} + +.uml-element { + fill: white; + stroke: black; + stroke-width: 1; +} + +.uml-relationship { + stroke: black; + stroke-width: 1; + fill: none; +} + +.relationship-label rect { + fill: #ffffff; + stroke: #000000; + stroke-width: 1px; +} + +.relationship-label text { + font-size: 12px; + fill: #000000; + font-family: Arial, sans-serif; +} + +.uml-element-name.owner { + font-size: 20px; + font-weight: bold; +} \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/element.svg.jinja b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/element.svg.jinja new file mode 100644 index 000000000..7f6b9bdf9 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/element.svg.jinja @@ -0,0 +1,78 @@ + + + + + {% set padding_x = 20 %} + {% set padding_y = 20 %} + {% set available_width = bounds.width - (padding_x * 2) %} + + {% set name_lines = element._wrapped_name_lines if '_wrapped_name_lines' in element else [] %} + {% set type_lines = element._wrapped_type_lines if '_wrapped_type_lines' in element else [] %} + + {% set line_height_name = 22 %} + {% set line_height_type = 18 %} + {% set vertical_gap = 5 if type_lines else 0 %} + {% set total_name_height = (name_lines|length * line_height_name) %} + {% set total_type_height = (type_lines|length * line_height_type) %} + {% set total_text_height = total_name_height + total_type_height + vertical_gap %} + + {% set center_y = (bounds.height / 2) %} + {% set start_y = center_y - (total_text_height / 2) %} + + {% set is_owner = (element.type == "BPMNPool" or element.type == "BPMNSwimlane") %} + + {% if is_owner %} + + + {% for line in name_lines %} + {% if loop.first %} + {{ line }} + {% else %} + {{ line }} + {% endif %} + {% endfor %} + + + {% if type_lines %} + + {% for line in type_lines %} + {% if loop.first %} + {{ line }} + {% else %} + {{ line }} + {% endif %} + {% endfor %} + + {% endif %} + + {% else %} + + + {% for line in name_lines %} + {% if loop.first %} + {{ line }} + {% else %} + {{ line }} + {% endif %} + {% endfor %} + + + {% if type_lines %} + + {% for line in type_lines %} + {% if loop.first %} + {{ line }} + {% else %} + {{ line }} + {% endif %} + {% endfor %} + + {% endif %} + + {% endif %} + + diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/relationship_path.svg.jinja b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/relationship_path.svg.jinja new file mode 100644 index 000000000..69a2eefb4 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/relationship_path.svg.jinja @@ -0,0 +1,27 @@ + + + + {% if rel.name %} + + + + + + {{ rel.name }} + + + {% endif %} + \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py new file mode 100644 index 000000000..460849a39 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py @@ -0,0 +1,26 @@ +import os +import json +from typing import Dict +from module_modeling_llm.helius_render.models.config_types import AllConfigs, ElementConfigEntry, RelationshipConfigEntry, MarkerConfigEntry + +def load_config(filename: str): + base_dir = os.path.dirname(os.path.dirname(__file__)) + config_path = os.path.join(base_dir, 'config', filename) + with open(config_path, 'r', encoding='utf-8') as file: + return json.load(file) + +def load_all_configs() -> AllConfigs: + elements = load_config('diagram_elements.json') + relationships = load_config('diagram_relationships.json') + markers = load_config('markers.json') + + # Cast the loaded data to typed dictionaries + elements_typed: Dict[str, ElementConfigEntry] = elements + relationships_typed: Dict[str, RelationshipConfigEntry] = relationships + markers_typed: Dict[str, MarkerConfigEntry] = markers + + return { + 'elements': elements_typed, + 'relationships': relationships_typed, + 'markers': markers_typed + } diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/constants.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/constants.py new file mode 100644 index 000000000..197dc1733 --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/constants.py @@ -0,0 +1,8 @@ +PADDING_LEFT = 50 +PADDING_RIGHT = 50 +PADDING_TOP = 50 +PADDING_BOTTOM = 50 +MARKER_SIZE = 10 +DEFAULT_DPI = 91 +ENTITY_MARGIN = 40 +OVERLAP_THRESHOLD = 40 \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/css_loader.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/css_loader.py new file mode 100644 index 000000000..cdf06362d --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/css_loader.py @@ -0,0 +1,15 @@ +import os + +def load_css() -> str: + """ + Load the CSS styles from the styles.css file + """ + base_dir = os.path.dirname(os.path.dirname(__file__)) + styles_path = os.path.join(base_dir, 'styles', 'styles.css') + + try: + with open(styles_path, 'r', encoding='utf-8') as f: + return f.read() + except FileNotFoundError: + print(f"Warning: styles.css not found at {styles_path}. Styles will not be applied.") + return "" \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/template_manager.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/template_manager.py new file mode 100644 index 000000000..b5dca3c7f --- /dev/null +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/template_manager.py @@ -0,0 +1,12 @@ +import os +from jinja2 import Environment, FileSystemLoader + +class TemplateManager: + def __init__(self): + template_path = os.path.join(os.path.dirname(__file__), '..', 'templates') + self.env = Environment(loader=FileSystemLoader(template_path)) + + def get_template(self, name: str): + return self.env.get_template(name) + +template_manager = TemplateManager() # Singleton-like usage diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/models/exercise_model.py b/modules/modeling/module_modeling_llm/module_modeling_llm/models/exercise_model.py index 1d9eef7c3..d95254462 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/models/exercise_model.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/models/exercise_model.py @@ -4,12 +4,13 @@ class ExerciseModel(BaseModel): submission_id: int exercise_id: int + model: str transformed_submission: str + transformed_example_solution: Optional[str] = None problem_statement: Optional[str] = None max_points: float bonus_points: float grading_instructions: Optional[str] = None submission_uml_type: str - transformed_example_solution: Optional[str] = None element_id_mapping: Dict[str, str] id_type_mapping: Dict[str, str] \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/utils/convert_to_athana_feedback_model.py b/modules/modeling/module_modeling_llm/module_modeling_llm/utils/convert_to_athana_feedback_model.py index 4ade6b3c7..c224dd6ca 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/utils/convert_to_athana_feedback_model.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/utils/convert_to_athana_feedback_model.py @@ -1,6 +1,5 @@ from typing import List, Optional from athena.modeling import Feedback -from athena.schemas.grading_criterion import GradingCriterion from module_modeling_llm.models.assessment_model import AssessmentModel from module_modeling_llm.models.exercise_model import ExerciseModel @@ -8,22 +7,10 @@ def convert_to_athana_feedback_model( feedback_result: AssessmentModel, exercise_model: ExerciseModel, - manual_structured_grading_instructions: Optional[List[GradingCriterion]] = None ) -> List[Feedback]: - grading_instruction_ids = { - grading_instruction.id - for criterion in (manual_structured_grading_instructions or []) - for grading_instruction in criterion.structured_grading_instructions - } - feedbacks = [] for feedback in feedback_result.feedbacks: - grading_instruction_id = ( - feedback.grading_instruction_id - if feedback.grading_instruction_id in grading_instruction_ids - else None - ) reference: Optional[str] = None if feedback.element_name: @@ -39,7 +26,7 @@ def convert_to_athana_feedback_model( title=feedback.title, description=feedback.description, credits=feedback.credits, - structured_grading_instruction_id=grading_instruction_id, + structured_grading_instruction_id=int(feedback.grading_instruction_id), meta={}, id=None, is_graded=False, diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/utils/get_exercise_model.py b/modules/modeling/module_modeling_llm/module_modeling_llm/utils/get_exercise_model.py index 3489be738..3f3c494aa 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/utils/get_exercise_model.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/utils/get_exercise_model.py @@ -22,7 +22,6 @@ def get_exercise_model(exercise: Exercise, submission: Submission) -> ExerciseMo submission_uml_type=diagram_type, transformed_example_solution=serialized_example_solution, element_id_mapping=element_id_mapping, - id_type_mapping=id_type_mapping - ) - - + id_type_mapping=id_type_mapping, + model=submission.model + ) \ No newline at end of file diff --git a/modules/modeling/module_modeling_llm/poetry.lock b/modules/modeling/module_modeling_llm/poetry.lock index ef71273fd..5065f623c 100644 --- a/modules/modeling/module_modeling_llm/poetry.lock +++ b/modules/modeling/module_modeling_llm/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -194,6 +194,47 @@ docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphi tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +[[package]] +name = "cairocffi" +version = "1.7.1" +description = "cffi-based cairo bindings for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cairocffi-1.7.1-py3-none-any.whl", hash = "sha256:9803a0e11f6c962f3b0ae2ec8ba6ae45e957a146a004697a1ac1bbf16b073b3f"}, + {file = "cairocffi-1.7.1.tar.gz", hash = "sha256:2e48ee864884ec4a3a34bfa8c9ab9999f688286eb714a15a43ec9d068c36557b"}, +] + +[package.dependencies] +cffi = ">=1.1.0" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["numpy", "pikepdf", "pytest", "ruff"] +xcb = ["xcffib (>=1.4.0)"] + +[[package]] +name = "cairosvg" +version = "2.7.1" +description = "A Simple SVG Converter based on Cairo" +optional = false +python-versions = ">=3.5" +files = [ + {file = "CairoSVG-2.7.1-py3-none-any.whl", hash = "sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b"}, + {file = "CairoSVG-2.7.1.tar.gz", hash = "sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0"}, +] + +[package.dependencies] +cairocffi = "*" +cssselect2 = "*" +defusedxml = "*" +pillow = "*" +tinycss2 = "*" + +[package.extras] +doc = ["sphinx", "sphinx-rtd-theme"] +test = ["flake8", "isort", "pytest"] + [[package]] name = "certifi" version = "2024.8.30" @@ -205,6 +246,85 @@ files = [ {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "charset-normalizer" version = "3.4.0" @@ -344,6 +464,25 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "cssselect2" +version = "0.7.0" +description = "CSS selectors for Python ElementTree" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cssselect2-0.7.0-py3-none-any.whl", hash = "sha256:fd23a65bfd444595913f02fc71f6b286c29261e354c41d722ca7a261a49b5969"}, + {file = "cssselect2-0.7.0.tar.gz", hash = "sha256:1ccd984dab89fc68955043aca4e1b03e0cf29cad9880f6e28e3ba7a74b14aa5a"}, +] + +[package.dependencies] +tinycss2 = "*" +webencodings = "*" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] + [[package]] name = "dataclasses-json" version = "0.6.7" @@ -359,6 +498,17 @@ files = [ marshmallow = ">=3.18.0,<4.0.0" typing-inspect = ">=0.4.0,<1" +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + [[package]] name = "dill" version = "0.3.9" @@ -1401,6 +1551,94 @@ files = [ [package.dependencies] flake8-polyfill = ">=1.0.2,<2" +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + [[package]] name = "platformdirs" version = "4.3.6" @@ -1564,6 +1802,26 @@ files = [ {file = "psycopg2-2.9.10.tar.gz", hash = "sha256:12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11"}, ] +[[package]] +name = "pycairo" +version = "1.27.0" +description = "Python interface for cairo" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pycairo-1.27.0-cp310-cp310-win32.whl", hash = "sha256:e20f431244634cf244ab6b4c3a2e540e65746eed1324573cf291981c3e65fc05"}, + {file = "pycairo-1.27.0-cp310-cp310-win_amd64.whl", hash = "sha256:03bf570e3919901572987bc69237b648fe0de242439980be3e606b396e3318c9"}, + {file = "pycairo-1.27.0-cp311-cp311-win32.whl", hash = "sha256:9a9b79f92a434dae65c34c830bb9abdbd92654195e73d52663cbe45af1ad14b2"}, + {file = "pycairo-1.27.0-cp311-cp311-win_amd64.whl", hash = "sha256:d40a6d80b15dacb3672dc454df4bc4ab3988c6b3f36353b24a255dc59a1c8aea"}, + {file = "pycairo-1.27.0-cp312-cp312-win32.whl", hash = "sha256:e2239b9bb6c05edae5f3be97128e85147a155465e644f4d98ea0ceac7afc04ee"}, + {file = "pycairo-1.27.0-cp312-cp312-win_amd64.whl", hash = "sha256:27cb4d3a80e3b9990af552818515a8e466e0317063a6e61585533f1a86f1b7d5"}, + {file = "pycairo-1.27.0-cp313-cp313-win32.whl", hash = "sha256:01505c138a313df2469f812405963532fc2511fb9bca9bdc8e0ab94c55d1ced8"}, + {file = "pycairo-1.27.0-cp313-cp313-win_amd64.whl", hash = "sha256:b0349d744c068b6644ae23da6ada111c8a8a7e323b56cbce3707cba5bdb474cc"}, + {file = "pycairo-1.27.0-cp39-cp39-win32.whl", hash = "sha256:f9ca8430751f1fdcd3f072377560c9e15608b9a42d61375469db853566993c9b"}, + {file = "pycairo-1.27.0-cp39-cp39-win_amd64.whl", hash = "sha256:1b1321652a6e27c4de3069709b1cae22aed2707fd8c5e889c04a95669228af2a"}, + {file = "pycairo-1.27.0.tar.gz", hash = "sha256:5cb21e7a00a2afcafea7f14390235be33497a2cce53a98a19389492a60628430"}, +] + [[package]] name = "pycodestyle" version = "2.12.1" @@ -1575,6 +1833,17 @@ files = [ {file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"}, ] +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + [[package]] name = "pydantic" version = "1.10.17" @@ -2200,6 +2469,24 @@ requests = ">=2.26.0" [package.extras] blobfile = ["blobfile (>=2)"] +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + [[package]] name = "toml" version = "0.10.2" @@ -2318,6 +2605,17 @@ h11 = ">=0.8" [package.extras] standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + [[package]] name = "yarl" version = "1.18.3" @@ -2417,4 +2715,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "3.11.*" -content-hash = "275bcd923db6c350fdd8e830f4508c45073e49fb19ef1a9af0c8eb904d2af7d7" +content-hash = "dbda1a25534e747066c734356663a404a19a9f1449798b42cf2b5ae46d1effab" diff --git a/modules/modeling/module_modeling_llm/pyproject.toml b/modules/modeling/module_modeling_llm/pyproject.toml index fdc2f28b8..6d1307c4f 100644 --- a/modules/modeling/module_modeling_llm/pyproject.toml +++ b/modules/modeling/module_modeling_llm/pyproject.toml @@ -15,6 +15,8 @@ nltk = "3.9.1" gitpython = "3.1.41" tiktoken = "0.7.0" langsmith = "0.1.106" +pycairo = "^1.27.0" +cairosvg = "^2.7.1" [tool.poetry.group.dev.dependencies] pydantic = "1.10.17" diff --git a/poetry.lock b/poetry.lock index 5d9d93ded..82bd0b0f1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,7 +1,93 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. -package = [] +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] [metadata] lock-version = "2.0" python-versions = "3.11.*" -content-hash = "d4ad9524552c0ae757a5f0acec4263efb41c732f83dd17815ee7198fcb605121" +content-hash = "57c31f0272eda85fb15d8444d8bf73a70c4a3c0c56ec3d7c5c940a8e85cb59ab" diff --git a/pyproject.toml b/pyproject.toml index 1c4777d27..090759b32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,6 +7,7 @@ package-mode = true [tool.poetry.dependencies] python = "3.11.*" +jinja2 = "^3.1.5" [tool.poetry.scripts] lint_all = "scripts.lint_modules:main" From 7a4ad41f3a586b49f814f81bf909dc5aab37b331 Mon Sep 17 00:00:00 2001 From: LeonWehrhahn Date: Thu, 9 Jan 2025 22:08:59 +0100 Subject: [PATCH 2/3] Change folder nameing --- .../core/generate_suggestions.py | 2 +- .../{helius_render => helios_renderer}/api.py | 8 ++++---- .../config/diagram_elements.json | 0 .../config/diagram_relationships.json | 0 .../config/markers.json | 0 .../models/bounds.py | 0 .../models/config_types.py | 0 .../models/diagram.py | 0 .../models/element.py | 0 .../models/relationship.py | 0 .../renderers/element_renderer.py | 8 ++++---- .../renderers/relationship_renderer.py | 10 +++++----- .../renderers/uml_renderer.py | 14 +++++++------- .../services/diagram_service.py | 6 +++--- .../services/path_service.py | 6 +++--- .../styles/styles.css | 0 .../templates/element.svg.jinja | 0 .../templates/relationship_path.svg.jinja | 0 .../utils/config_loader.py | 2 +- .../utils/constants.py | 0 .../utils/css_loader.py | 0 .../utils/template_manager.py | 0 22 files changed, 28 insertions(+), 28 deletions(-) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/api.py (73%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/config/diagram_elements.json (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/config/diagram_relationships.json (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/config/markers.json (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/models/bounds.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/models/config_types.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/models/diagram.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/models/element.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/models/relationship.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/renderers/element_renderer.py (81%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/renderers/relationship_renderer.py (89%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/renderers/uml_renderer.py (95%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/services/diagram_service.py (82%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/services/path_service.py (99%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/styles/styles.css (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/templates/element.svg.jinja (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/templates/relationship_path.svg.jinja (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/utils/config_loader.py (85%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/utils/constants.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/utils/css_loader.py (100%) rename modules/modeling/module_modeling_llm/module_modeling_llm/{helius_render => helios_renderer}/utils/template_manager.py (100%) diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py b/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py index f28408b34..48724f87b 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/core/generate_suggestions.py @@ -5,7 +5,7 @@ from athena import emit_meta from module_modeling_llm.config import BasicApproachConfig -from module_modeling_llm.helius_render.api import render_diagram +from module_modeling_llm.helios_renderer.api import render_diagram from module_modeling_llm.models.assessment_model import AssessmentModel from module_modeling_llm.prompts.apollon_format_description import apollon_format_description from llm_core.utils.predict_and_parse import predict_and_parse diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/api.py similarity index 73% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/api.py index 6cf1757d5..413d6fa2b 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/api.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/api.py @@ -1,9 +1,9 @@ import json from typing import Dict, Optional, cast -from module_modeling_llm.helius_render.models.diagram import UMLDiagram -from module_modeling_llm.helius_render.utils.config_loader import load_all_configs -from module_modeling_llm.helius_render.renderers.uml_renderer import UMLRenderer -from module_modeling_llm.helius_render.utils.css_loader import load_css +from module_modeling_llm.helios_renderer.models.diagram import UMLDiagram +from module_modeling_llm.helios_renderer.utils.config_loader import load_all_configs +from module_modeling_llm.helios_renderer.renderers.uml_renderer import UMLRenderer +from module_modeling_llm.helios_renderer.utils.css_loader import load_css # Global initialization # Load configs and css once diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_elements.json b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/config/diagram_elements.json similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_elements.json rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/config/diagram_elements.json diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_relationships.json b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/config/diagram_relationships.json similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/diagram_relationships.json rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/config/diagram_relationships.json diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/markers.json b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/config/markers.json similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/config/markers.json rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/config/markers.json diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/bounds.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/bounds.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/bounds.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/bounds.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/config_types.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/config_types.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/config_types.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/config_types.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/diagram.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/diagram.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/diagram.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/diagram.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/element.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/element.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/element.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/element.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/relationship.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/relationship.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/models/relationship.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/models/relationship.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/element_renderer.py similarity index 81% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/element_renderer.py index 264bb0def..01e28ad39 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/element_renderer.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/element_renderer.py @@ -2,10 +2,10 @@ import xml.etree.ElementTree as ET from jinja2 import Template -from module_modeling_llm.helius_render.models.bounds import Bounds -from module_modeling_llm.helius_render.models.config_types import ElementConfig, ElementConfigEntry -from module_modeling_llm.helius_render.models.element import Element -from module_modeling_llm.helius_render.utils.template_manager import TemplateManager +from module_modeling_llm.helios_renderer.models.bounds import Bounds +from module_modeling_llm.helios_renderer.models.config_types import ElementConfig, ElementConfigEntry +from module_modeling_llm.helios_renderer.models.element import Element +from module_modeling_llm.helios_renderer.utils.template_manager import TemplateManager class ElementRenderer: """ diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/relationship_renderer.py similarity index 89% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/relationship_renderer.py index 3eba6c7be..a9abb16d8 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/relationship_renderer.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/relationship_renderer.py @@ -1,10 +1,10 @@ from typing import Dict, List, Tuple import xml.etree.ElementTree as ET -from module_modeling_llm.helius_render.services.path_service import compute_relationship_path -from module_modeling_llm.helius_render.models.element import Element -from module_modeling_llm.helius_render.models.relationship import Relationship -from module_modeling_llm.helius_render.models.config_types import RelationshipConfig -from module_modeling_llm.helius_render.utils.template_manager import TemplateManager +from module_modeling_llm.helios_renderer.services.path_service import compute_relationship_path +from module_modeling_llm.helios_renderer.models.element import Element +from module_modeling_llm.helios_renderer.models.relationship import Relationship +from module_modeling_llm.helios_renderer.models.config_types import RelationshipConfig +from module_modeling_llm.helios_renderer.utils.template_manager import TemplateManager class RelationshipRenderer: """ diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/uml_renderer.py similarity index 95% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/uml_renderer.py index a32a5b78f..5302abb5c 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/renderers/uml_renderer.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/renderers/uml_renderer.py @@ -4,13 +4,13 @@ from PIL import Image, ImageDraw, ImageFont -from module_modeling_llm.helius_render.models.config_types import AllConfigs -from module_modeling_llm.helius_render.models.diagram import UMLDiagram -from module_modeling_llm.helius_render.services.diagram_service import compute_diagram_bounds -from module_modeling_llm.helius_render.renderers.element_renderer import ElementRenderer -from module_modeling_llm.helius_render.renderers.relationship_renderer import RelationshipRenderer -from module_modeling_llm.helius_render.utils.template_manager import template_manager -from module_modeling_llm.helius_render.utils.constants import DEFAULT_DPI +from module_modeling_llm.helios_renderer.models.config_types import AllConfigs +from module_modeling_llm.helios_renderer.models.diagram import UMLDiagram +from module_modeling_llm.helios_renderer.services.diagram_service import compute_diagram_bounds +from module_modeling_llm.helios_renderer.renderers.element_renderer import ElementRenderer +from module_modeling_llm.helios_renderer.renderers.relationship_renderer import RelationshipRenderer +from module_modeling_llm.helios_renderer.utils.template_manager import template_manager +from module_modeling_llm.helios_renderer.utils.constants import DEFAULT_DPI class UMLRenderer: diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/services/diagram_service.py similarity index 82% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/services/diagram_service.py index 1bd9a6950..ae08a7e40 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/diagram_service.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/services/diagram_service.py @@ -1,7 +1,7 @@ -from module_modeling_llm.helius_render.models.diagram import UMLDiagram -from module_modeling_llm.helius_render.models.bounds import Bounds -from module_modeling_llm.helius_render.utils.constants import (PADDING_LEFT, PADDING_RIGHT, PADDING_TOP, PADDING_BOTTOM, MARKER_SIZE) +from module_modeling_llm.helios_renderer.models.diagram import UMLDiagram +from module_modeling_llm.helios_renderer.models.bounds import Bounds +from module_modeling_llm.helios_renderer.utils.constants import (PADDING_LEFT, PADDING_RIGHT, PADDING_TOP, PADDING_BOTTOM, MARKER_SIZE) def compute_diagram_bounds(diagram: UMLDiagram): """ diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/services/path_service.py similarity index 99% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/services/path_service.py index d5233e915..dc6e1d2e3 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/services/path_service.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/services/path_service.py @@ -9,9 +9,9 @@ import math from typing import Dict, List, Optional, Any -from module_modeling_llm.helius_render.utils.constants import ENTITY_MARGIN, OVERLAP_THRESHOLD -from module_modeling_llm.helius_render.models.element import Element -from module_modeling_llm.helius_render.models.relationship import Relationship +from module_modeling_llm.helios_renderer.utils.constants import ENTITY_MARGIN, OVERLAP_THRESHOLD +from module_modeling_llm.helios_renderer.models.element import Element +from module_modeling_llm.helios_renderer.models.relationship import Relationship # Directions enumeration as used in the original code for port/connection directions class Direction: diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/styles/styles.css b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/styles/styles.css similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/styles/styles.css rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/styles/styles.css diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/element.svg.jinja b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/templates/element.svg.jinja similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/element.svg.jinja rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/templates/element.svg.jinja diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/relationship_path.svg.jinja b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/templates/relationship_path.svg.jinja similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/templates/relationship_path.svg.jinja rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/templates/relationship_path.svg.jinja diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/config_loader.py similarity index 85% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/config_loader.py index 460849a39..58c8d270e 100644 --- a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/config_loader.py +++ b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/config_loader.py @@ -1,7 +1,7 @@ import os import json from typing import Dict -from module_modeling_llm.helius_render.models.config_types import AllConfigs, ElementConfigEntry, RelationshipConfigEntry, MarkerConfigEntry +from module_modeling_llm.helios_renderer.models.config_types import AllConfigs, ElementConfigEntry, RelationshipConfigEntry, MarkerConfigEntry def load_config(filename: str): base_dir = os.path.dirname(os.path.dirname(__file__)) diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/constants.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/constants.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/constants.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/constants.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/css_loader.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/css_loader.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/css_loader.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/css_loader.py diff --git a/modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/template_manager.py b/modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/template_manager.py similarity index 100% rename from modules/modeling/module_modeling_llm/module_modeling_llm/helius_render/utils/template_manager.py rename to modules/modeling/module_modeling_llm/module_modeling_llm/helios_renderer/utils/template_manager.py From fd15fd5de475cf2a6fb28e16eba1398ea5750c4c Mon Sep 17 00:00:00 2001 From: LeonWehrhahn Date: Thu, 9 Jan 2025 23:51:43 +0100 Subject: [PATCH 3/3] Add integration tests --- .../modeling/module_modeling_llm/poetry.lock | 81 +- .../module_modeling_llm/pyproject.toml | 2 +- tests/integration_tests/eunomia/.gitignore | 2 + tests/integration_tests/eunomia/README.md | 281 ++++ .../eunomia/eval/core/scenario_evaluation.py | 26 + .../eunomia/eval/core/test_case_runner.py | 63 + tests/integration_tests/eunomia/eval/main.py | 34 + .../eval/models/entities/evaluation_runner.py | 191 +++ .../eunomia/eval/models/entities/scenario.py | 83 ++ .../eval/models/entities/scenario_result.py | 49 + .../eval/models/entities/test_case_result.py | 380 ++++++ .../models/schemas/external/api_response.py | 28 + .../eval/models/schemas/external/feedback.py | 20 + .../schemas/external/llm_costs_config.py | 50 + .../structured_grading_instructions.py | 20 + .../eval/models/schemas/internal/exercise.py | 17 + .../schemas/internal/scenario_test_case.py | 11 + .../helpers/generate_scenario_dataframes.py | 87 ++ .../eval/reporting/output_scenario_reports.py | 17 + .../write_file_scenario_csv_report.py | 17 + .../write_file_scenario_json_report.py | 18 + .../write_file_test_case_json_report.py | 26 + .../write_terminal_scenario_summary_report.py | 49 + .../eunomia/eval/utils/filter_scenarios.py | 32 + .../eunomia/eval/utils/get_user_input.py | 30 + .../eunomia/eval/utils/llm_cost_calculator.py | 63 + .../eval/utils/load_llm_cost_config.py | 21 + .../eunomia/eval/utils/request_feedback.py | 51 + tests/integration_tests/eunomia/poetry.lock | 1126 +++++++++++++++++ .../integration_tests/eunomia/pyproject.toml | 26 + .../scenarios/bpmn_loan/example_solution.json | 926 ++++++++++++++ .../eunomia/scenarios/bpmn_loan/manifest.yml | 213 ++++ .../test_cases/activity_has_been_merged.json | 880 +++++++++++++ .../test_cases/activity_missing_entirely.json | 880 +++++++++++++ .../test_cases/excessive_diagram_object.json | 972 ++++++++++++++ .../missing_description_on_timed_event.json | 971 ++++++++++++++ .../test_cases/missing_end_event.json | 836 ++++++++++++ .../bpmn_loan/test_cases/missing_event.json | 841 ++++++++++++ .../bpmn_loan/test_cases/missing_gateway.json | 881 +++++++++++++ .../missing_incoming_connection.json | 894 +++++++++++++ .../test_cases/missing_message_flow.json | 886 +++++++++++++ .../missing_outgoing_connection.json | 894 +++++++++++++ .../test_cases/missing_sequence_flow.json | 894 +++++++++++++ .../test_cases/missing_start_event.json | 804 ++++++++++++ .../no_gateway_logic_description.json | 926 ++++++++++++++ .../non_control_flow_as_control_flow.json | 940 ++++++++++++++ ...equence_flow_crossing_pool_boundaries.json | 926 ++++++++++++++ .../test_cases/unlabelled_activity.json | 926 ++++++++++++++ .../test_cases/unlabelled_event.json | 926 ++++++++++++++ .../test_cases/unlabelled_gateway.json | 926 ++++++++++++++ .../bpmn_loan/test_cases/unlabelled_lane.json | 926 ++++++++++++++ .../bpmn_loan/test_cases/unlabelled_pool.json | 926 ++++++++++++++ .../test_cases/use_of_uncontrolled_flows.json | 926 ++++++++++++++ .../use_of_wrong_activity_type.json | 926 ++++++++++++++ .../test_cases/use_of_wrong_event_type.json | 926 ++++++++++++++ .../test_cases/use_of_wrong_gateway_type.json | 926 ++++++++++++++ .../using_an_event_as_indicator.json | 939 ++++++++++++++ .../test_cases/wrong_naming_scheme.json | 926 ++++++++++++++ .../wrong_sequence_of_diagram_objects.json | 926 ++++++++++++++ .../test_cases/wrong_use_of_end_event.json | 926 ++++++++++++++ .../test_cases/wrong_use_of_start_event.json | 926 ++++++++++++++ .../wrong_use_of_the_loop_marker.json | 926 ++++++++++++++ ...of_the_parallel_multi_instance_marker.json | 926 ++++++++++++++ ..._the_sequential_multi_instance_marker.json | 926 ++++++++++++++ .../test_cases/wrongly_named_activity.json | 926 ++++++++++++++ .../wrongly_named_connecting_objects.json | 926 ++++++++++++++ .../test_cases/wrongly_named_event.json | 926 ++++++++++++++ .../test_cases/wrongly_named_gateway.json | 926 ++++++++++++++ ...ongly_named_pools_lanes_and_artifacts.json | 926 ++++++++++++++ .../eunomia/scenarios/llm_cost.yml | 35 + 70 files changed, 37850 insertions(+), 35 deletions(-) create mode 100644 tests/integration_tests/eunomia/.gitignore create mode 100644 tests/integration_tests/eunomia/README.md create mode 100644 tests/integration_tests/eunomia/eval/core/scenario_evaluation.py create mode 100644 tests/integration_tests/eunomia/eval/core/test_case_runner.py create mode 100644 tests/integration_tests/eunomia/eval/main.py create mode 100644 tests/integration_tests/eunomia/eval/models/entities/evaluation_runner.py create mode 100644 tests/integration_tests/eunomia/eval/models/entities/scenario.py create mode 100644 tests/integration_tests/eunomia/eval/models/entities/scenario_result.py create mode 100644 tests/integration_tests/eunomia/eval/models/entities/test_case_result.py create mode 100644 tests/integration_tests/eunomia/eval/models/schemas/external/api_response.py create mode 100644 tests/integration_tests/eunomia/eval/models/schemas/external/feedback.py create mode 100644 tests/integration_tests/eunomia/eval/models/schemas/external/llm_costs_config.py create mode 100644 tests/integration_tests/eunomia/eval/models/schemas/external/structured_grading_instructions.py create mode 100644 tests/integration_tests/eunomia/eval/models/schemas/internal/exercise.py create mode 100644 tests/integration_tests/eunomia/eval/models/schemas/internal/scenario_test_case.py create mode 100644 tests/integration_tests/eunomia/eval/reporting/helpers/generate_scenario_dataframes.py create mode 100644 tests/integration_tests/eunomia/eval/reporting/output_scenario_reports.py create mode 100644 tests/integration_tests/eunomia/eval/reporting/write_file_scenario_csv_report.py create mode 100644 tests/integration_tests/eunomia/eval/reporting/write_file_scenario_json_report.py create mode 100644 tests/integration_tests/eunomia/eval/reporting/write_file_test_case_json_report.py create mode 100644 tests/integration_tests/eunomia/eval/reporting/write_terminal_scenario_summary_report.py create mode 100644 tests/integration_tests/eunomia/eval/utils/filter_scenarios.py create mode 100644 tests/integration_tests/eunomia/eval/utils/get_user_input.py create mode 100644 tests/integration_tests/eunomia/eval/utils/llm_cost_calculator.py create mode 100644 tests/integration_tests/eunomia/eval/utils/load_llm_cost_config.py create mode 100644 tests/integration_tests/eunomia/eval/utils/request_feedback.py create mode 100644 tests/integration_tests/eunomia/poetry.lock create mode 100644 tests/integration_tests/eunomia/pyproject.toml create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/example_solution.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/manifest.yml create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_has_been_merged.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_missing_entirely.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/excessive_diagram_object.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_description_on_timed_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_end_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_gateway.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_incoming_connection.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_message_flow.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_outgoing_connection.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_sequence_flow.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_start_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/no_gateway_logic_description.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/non_control_flow_as_control_flow.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/sequence_flow_crossing_pool_boundaries.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_activity.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_gateway.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_lane.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_pool.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_uncontrolled_flows.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_activity_type.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_event_type.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_gateway_type.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/using_an_event_as_indicator.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_naming_scheme.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_sequence_of_diagram_objects.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_end_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_start_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_loop_marker.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_parallel_multi_instance_marker.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_sequential_multi_instance_marker.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_activity.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_connecting_objects.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_event.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_gateway.json create mode 100644 tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_pools_lanes_and_artifacts.json create mode 100644 tests/integration_tests/eunomia/scenarios/llm_cost.yml diff --git a/modules/modeling/module_modeling_llm/poetry.lock b/modules/modeling/module_modeling_llm/poetry.lock index 5065f623c..0eb2314f7 100644 --- a/modules/modeling/module_modeling_llm/poetry.lock +++ b/modules/modeling/module_modeling_llm/poetry.lock @@ -567,19 +567,19 @@ all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)" [[package]] name = "flake8" -version = "7.1.1" -description = "the modular source code checker: pep8 pyflakes and co" +version = "2.3.0" +description = "the modular source code checker: pep8, pyflakes and co" optional = false -python-versions = ">=3.8.1" +python-versions = "*" files = [ - {file = "flake8-7.1.1-py2.py3-none-any.whl", hash = "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"}, - {file = "flake8-7.1.1.tar.gz", hash = "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38"}, + {file = "flake8-2.3.0-py2.py3-none-any.whl", hash = "sha256:c99cc9716d6655d9c8bcb1e77632b8615bf0abd282d7abd9f5c2148cad7fc669"}, + {file = "flake8-2.3.0.tar.gz", hash = "sha256:5ee1a43ccd0716d6061521eec6937c983efa027793013e572712c4da55c7c83e"}, ] [package.dependencies] -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.12.0,<2.13.0" -pyflakes = ">=3.2.0,<3.3.0" +mccabe = ">=0.2.1" +pep8 = ">=1.5.7" +pyflakes = ">=0.8.1" [[package]] name = "flake8-polyfill" @@ -1537,6 +1537,17 @@ files = [ {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] +[[package]] +name = "pep8" +version = "1.7.1" +description = "Python style guide checker" +optional = false +python-versions = "*" +files = [ + {file = "pep8-1.7.1-py2.py3-none-any.whl", hash = "sha256:b22cfae5db09833bb9bd7c8463b53e1a9c9b39f12e304a8d0bba729c501827ee"}, + {file = "pep8-1.7.1.tar.gz", hash = "sha256:fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374"}, +] + [[package]] name = "pep8-naming" version = "0.10.0" @@ -1748,40 +1759,41 @@ files = [ [[package]] name = "prospector" -version = "1.13.3" +version = "1.10.2" description = "Prospector is a tool to analyse Python code by aggregating the result of other tools." optional = false -python-versions = "<4.0,>=3.9" +python-versions = ">=3.7.2,<4.0" files = [ - {file = "prospector-1.13.3-py3-none-any.whl", hash = "sha256:e7261c222ba54bc8aef8c9e31b2dcf5ed2a656c9b76fc0cceab294cd5ec3db6b"}, - {file = "prospector-1.13.3.tar.gz", hash = "sha256:36ccb13f69aa27c5c4682afd4cc46219b9e0c80723e30dc64ff30c71f7b877a1"}, + {file = "prospector-1.10.2-py3-none-any.whl", hash = "sha256:3bfe103c28bb821cca84926ca31357fbfd32405e4bf8c34ca2e55885684557e4"}, + {file = "prospector-1.10.2.tar.gz", hash = "sha256:cc8f09e79bdd32247edddf05b666940e88ad96338a84f5717b1e8c0678337821"}, ] [package.dependencies] dodgy = ">=0.2.1,<0.3.0" +flake8 = "<6.0.0" GitPython = ">=3.1.27,<4.0.0" mccabe = ">=0.7.0,<0.8.0" packaging = "*" pep8-naming = ">=0.3.3,<=0.10.0" pycodestyle = ">=2.9.0" pydocstyle = ">=2.0.0" -pyflakes = ">=2.2.0" -pylint = ">=3.0" +pyflakes = ">=2.2.0,<3" +pylint = ">=2.8.3" pylint-celery = "0.3" -pylint-django = ">=2.6.1" +pylint-django = ">=2.5,<2.6" pylint-flask = "0.6" +pylint-plugin-utils = ">=0.7,<0.8" PyYAML = "*" -requirements-detector = ">=1.3.2" +requirements-detector = ">=1.2.0" setoptconf-tmp = ">=0.3.1,<0.4.0" toml = ">=0.10.2,<0.11.0" [package.extras] with-bandit = ["bandit (>=1.5.1)"] -with-everything = ["bandit (>=1.5.1)", "mypy (>=0.600)", "pyright (>=1.1.3)", "pyroma (>=2.4)", "ruff", "vulture (>=1.5)"] +with-everything = ["bandit (>=1.5.1)", "mypy (>=0.600)", "pyright (>=1.1.3)", "pyroma (>=2.4)", "vulture (>=1.5)"] with-mypy = ["mypy (>=0.600)"] with-pyright = ["pyright (>=1.1.3)"] with-pyroma = ["pyroma (>=2.4)"] -with-ruff = ["ruff"] with-vulture = ["vulture (>=1.5)"] [[package]] @@ -1922,13 +1934,13 @@ toml = ["tomli (>=1.2.3)"] [[package]] name = "pyflakes" -version = "3.2.0" +version = "2.5.0" description = "passive checker of Python programs" optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" files = [ - {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, - {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, ] [[package]] @@ -1972,21 +1984,22 @@ pylint-plugin-utils = ">=0.2.1" [[package]] name = "pylint-django" -version = "2.6.1" +version = "2.5.2" description = "A Pylint plugin to help Pylint understand the Django web framework" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "*" files = [ - {file = "pylint-django-2.6.1.tar.gz", hash = "sha256:19e8c85a8573a04e3de7be2ba91e9a7c818ebf05e1b617be2bbae67a906b725f"}, - {file = "pylint_django-2.6.1-py3-none-any.whl", hash = "sha256:359f68fe8c810ee6bc8e1ab4c83c19b15a43b234a24b08978f47a23462b5ce28"}, + {file = "pylint-django-2.5.2.tar.gz", hash = "sha256:1933d82b4a92538a3b12aef91adfd7d866befd051d7a02d6245b0f965587d97c"}, + {file = "pylint_django-2.5.2-py3-none-any.whl", hash = "sha256:286dce8a31bc8ed5a523e8d8742b5a0e083b87f5f140ea4cde9aad612c03bd2d"}, ] [package.dependencies] -pylint = ">=3.0,<4" -pylint-plugin-utils = ">=0.8" +pylint = ">=2.0" +pylint-plugin-utils = ">=0.7" [package.extras] -with-django = ["Django (>=2.2)"] +for-tests = ["coverage", "django-tables2", "django-tastypie", "factory-boy", "pytest", "wheel"] +with-django = ["Django"] [[package]] name = "pylint-flask" @@ -2003,13 +2016,13 @@ pylint-plugin-utils = ">=0.2.1" [[package]] name = "pylint-plugin-utils" -version = "0.8.2" +version = "0.7" description = "Utilities and helpers for writing Pylint plugins" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.6.2" files = [ - {file = "pylint_plugin_utils-0.8.2-py3-none-any.whl", hash = "sha256:ae11664737aa2effbf26f973a9e0b6779ab7106ec0adc5fe104b0907ca04e507"}, - {file = "pylint_plugin_utils-0.8.2.tar.gz", hash = "sha256:d3cebf68a38ba3fba23a873809155562571386d4c1b03e5b4c4cc26c3eee93e4"}, + {file = "pylint-plugin-utils-0.7.tar.gz", hash = "sha256:ce48bc0516ae9415dd5c752c940dfe601b18fe0f48aa249f2386adfa95a004dd"}, + {file = "pylint_plugin_utils-0.7-py3-none-any.whl", hash = "sha256:b3d43e85ab74c4f48bb46ae4ce771e39c3a20f8b3d56982ab17aa73b4f98d535"}, ] [package.dependencies] @@ -2715,4 +2728,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "3.11.*" -content-hash = "dbda1a25534e747066c734356663a404a19a9f1449798b42cf2b5ae46d1effab" +content-hash = "d11cacc152b143998d1b41028266bd4f5e7c918d68abaa2a7f35398fe28776c8" diff --git a/modules/modeling/module_modeling_llm/pyproject.toml b/modules/modeling/module_modeling_llm/pyproject.toml index 6d1307c4f..70f659a0d 100644 --- a/modules/modeling/module_modeling_llm/pyproject.toml +++ b/modules/modeling/module_modeling_llm/pyproject.toml @@ -20,7 +20,7 @@ cairosvg = "^2.7.1" [tool.poetry.group.dev.dependencies] pydantic = "1.10.17" -prospector = "^1.10.2" +prospector = "1.10.2" types-requests = "2.31.0.8" [tool.poetry.scripts] diff --git a/tests/integration_tests/eunomia/.gitignore b/tests/integration_tests/eunomia/.gitignore new file mode 100644 index 000000000..e6069cf4b --- /dev/null +++ b/tests/integration_tests/eunomia/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +results/ \ No newline at end of file diff --git a/tests/integration_tests/eunomia/README.md b/tests/integration_tests/eunomia/README.md new file mode 100644 index 000000000..273bfe718 --- /dev/null +++ b/tests/integration_tests/eunomia/README.md @@ -0,0 +1,281 @@ +# Eunomia TestBench + +## Overview + +Eunomia TestBench is a specialized testing framework designed to evaluate how well artificial intelligence (AI) systems can provide feedback on student diagrams in software engineering courses. It as a quality control system for AI-powered teaching assistants that help grade and provide feedback on student work. + +### What Problem Does It Solve? + +In large university courses, reviewing and providing feedback on student diagrams (like UML diagrams that describe software systems) can be extremely time-consuming for instructors and teaching assistants. While AI systems can help by automatically providing feedback, we need to make sure this automated feedback is accurate and helpful. This is where Eunomia TestBench comes in - it systematically tests these AI systems to ensure they're giving good feedback. + +### Key Features + +- **Comprehensive Testing**: Tests AI feedback across many different diagram scenarios +- **Detailed Analysis**: Measures accuracy and consistency of AI feedback +- **Cost Tracking**: Monitors the computational costs of running AI feedback systems +- **Performance Metrics**: Measures response time +- **Clear Reporting**: Generates easy-to-understand reports about AI system performance +- **Flexible Configuration**: Supports testing different types of diagrams and feedback scenarios +- **Rapid Development Feedback**: Helps developers quickly assess changes to the AI feedback system +- **Diagnostic Insights**: Identifies specific areas where the AI system struggles + +### Key Benefits + +1. Rapid Iteration Testing: Quickly assess the impact of changes to your AI feedback system: + - Test new LLM models + - Evaluate different processing pipelines + - Compare different prompt engineering approaches + - Measure performance improvements + +2. Detailed Diagnostics: Understand exactly where your system needs improvement: + - Per-test-case performance metrics + - Specific failure patterns + - Response time measurements + - Cost analysis per model and request + +3. Development Insights: The system generates comprehensive reports showing: + - Which types of diagram elements the AI struggles with + - Where feedback is inconsistent + - Response time bottlenecks + - Cost implications of different approaches + +## Testing Methodology + +Testing Large Language Models (LLMs) in educational settings presents unique challenges. Their outputs can vary between runs, they're sensitive to subtle input changes, and they can express the same feedback in countless valid ways. Traditional evaluation methods struggle with this variability - comparing AI-generated feedback against reference solutions becomes problematic when multiple phrasings are equally valid, and it's challenging to define objective success criteria. While human evaluators could assess the quality of LLM feedback, this approach is time-consuming, expensive, and introduces its own inconsistencies as different evaluators may interpret the same feedback differently. +Eunomia TestBench overcomes these challenges through its innovative use of Structured Grading Instructions (SGIs). Rather than asking the LLM to generate freeform feedback, the system provides a carefully curated set of predefined instructions that cover different aspects of correctness and common errors. The LLM's task is to select the most appropriate instructions from this fixed set when analyzing student work. This transforms the evaluation from interpreting natural language into a clear-cut comparison of instruction IDs - did the LLM identify the correct issues or not? This automated approach allows for rapid, consistent testing at scale, enabling thousands of test cases to be evaluated in the time it would take a human to assess just a few. +This structured approach brings remarkable clarity to LLM evaluation. Each test case has specific expected instructions, and we can precisely measure how well the LLM's selections match these expectations. The system tracks accuracy rates, identifies patterns in missed issues, and enables direct comparisons between different LLM versions or configurations. While the underlying LLM remains non-deterministic, the structured nature of the inputs and outputs creates a reliable framework for assessment. This allows developers to systematically improve the system's feedback capabilities while giving educators confidence in the consistency and accuracy of the AI's evaluations, all without requiring constant human oversight or intervention. + +### Example + +To demonstrate how we evaluate LLM model performance, let's use an example focused on UML class diagram feedback. We'll create a test scenario called "project_management" that assesses the LLM's ability to provide accurate feedback on class diagrams. + +Consider this problem statement for the project_management exercise: + +"You are designing a simple project management tool. In this tool, a Project consists of multiple Task objects that detail individual units of work. Each Task is uniquely defined within the scope of its containing Project. If the Project is cancelled or deleted, all its Tasks should also be removed. Draw a UML class diagram that accurately reflects this relationship." + +We start by creating a new scenario called project_management in the scenarios folder + +```plaintext +scenario/ + ├── project_management/ + │ ├── manifest.yml + │ ├── example_solution.json + │ └── test_cases/ + │ └── association_instead_of_composition.json + └── llm_cost.yml +``` + +- `manifest.yml:` Defines all configuration details for the project_management scenario +- `example_solution.json:` Contains a perfect reference solution as an Apollon UML diagram. This file is used only as a parameter for the feedback AI and not directly by the test bench. +- `test_cases Folder:` Contains all test case files representing student submissions that differ in specific ways from the perfect solution. Each test case introduces common mistakes for the AI to identify. + - For instance, association_instead_of_composition.json includes a test case where the Project-Task relationship is modeled as a simple association rather than a composition. We want to test if the AI’s feedback will correctly flag this error. +- `llm_cost.yml:` Contains configuration details related to cost calculation for running the AI feedback system on each test case. + +Next, we define grading criteria based on the problem description in the manifest.yml file: + +```yml +server_url: "" +exercise: + ... +criteria: + - id: "classes" + ... + - id: "relationship_type" + title: "Project-Task Relationship Correctness" + instructions: + - id: "relationship_correct" + instruction_description: "A composition relationship from Project to Task is correctly modeled (solid diamond)." + feedback: "Excellent! The Project-Task relationship is shown as a composition, indicating that Tasks depend entirely on the Project." + credits: 1.0 + + - id: "relationship_incorrect" + instruction_description: "The Project-Task relationship is not shown as a composition (e.g., it's just an association or aggregation)." + feedback: "This should be represented as a composition. Use a solid diamond on the Project side to show that Tasks cannot exist without the Project." + credits: 0.0 + - id: "attributes" + ... + - id: "naming_format" + ... + +default_expected: + - "classes_correct" + - "relationship_correct" + - "attributes_correct" + - "naming_format_correct" + +test_case_diffs: + relationship_correct: + "association_instead_of_composition": "relationship_incorrect" +``` + +In the `manifest.yml` file, we also define **default_expected** instructions. These represent the feedback we expect the AI feedback system to produce when given a perfect solution. + +We then specify how each test case in `scenario/project_management/test_cases/` deviates from this perfect solution. For example, in the `association_instead_of_composition` test case, we still anticipate all of the default instructions, but instead of receiving `relationship_correct`, we expect the AI to return `relationship_incorrect`. + +## Interpreting Results + +When evaluating how well the AI system performs, Eunomia TestBench provides several key metrics. The most important metric is the test case score percentage, which indicates how closely the AI's feedback matched the expected instructions. + +The test case score is calculated by giving double weight to instructions that are specifically being tested for in this test case (defined in test_case_diffs) and single weight to all other instructions, which helps focus the evaluation on whether the LLM correctly identified the main issue being tested. This weighted scoring approach is particularly important because LLMs tend to be "over-zealous" in finding additional errors (e.g., if testing for an extra diagram element, the LLM might correctly flag this but also deduct points for naming conventions on that extra element) - while this eagerness to find errors is actually preferable from a teaching perspective since it's better for the LLM to be too strict (allowing instructors to override) than to miss actual errors that would then go unflagged. + +## Technical Details + +The runtime logic is orchestrated by eval/main.py, which collects user input for scenario filtering and run naming, sets up directories, and configures LLM cost models from the llm_cost.yml file. The EvaluationRunner class (eval/models/entities/evaluation_runner.py) then loads scenario configurations, performs ID mapping for criteria and instructions (converting textual identifiers into numeric ones), and instantiates Scenario objects. Each Scenario includes its Exercise definition, criteria, expected instructions, and a list of ScenarioTestCase objects. The evaluate_scenario function (eval/core/scenario_evaluation.py) executes test cases in parallel, leveraging a ThreadPoolExecutor to handle concurrent requests. For each test case, run_test_case (eval/core/test_case_runner.py) attempts multiple retries if server requests fail, ensuring robustness against transient network issues. + +After receiving feedback, Eunomia TestBench constructs TestCaseResult objects that reconcile expected and returned instructions, compute final scores, and determine if the test case was detected correctly. The scoring involves weighted calculations, especially emphasizing correctness on instructions that differ from the default scenario (i.e., the primary errors introduced for that particular test case). By integrating the LLMCostCalculator (eval/utils/llm_cost_calculator.py), the system also determines token consumption costs. Results are then aggregated into ScenarioResult objects, enabling retrieval of summary statistics such as total cases, fully correct outcomes, score matches, and cost overviews. + +## Viewing Results + +After executing the evaluation, results are generated in the `results/` directory, following this structure: + +```plaintext +results/ +├── run_name/ +│ ├── scenario_name/ +│ │ ├── tables/ +│ │ │ ├── scenario_summary.csv +│ │ │ └── test_case_results.csv +│ │ ├── test_cases/ +│ │ │ └── [individual test case results].json +│ │ └── scenario_results.json +``` + +Where: + +- **run_name**: A user-defined label for the current batch of evaluations. +- **scenario_name**: The name of the scenario being tested (e.g., `project_management`). + +Within each scenario directory, multiple output files are generated, providing insights at various levels of detail. + +--- + +### Output Files + +#### scenario_summary.csv + +**Location:** `results/run_name/scenario_name/tables/scenario_summary.csv` +**Purpose:** Provides a high-level summary of scenario evaluation metrics. + +| Metric | Value | +|-------------------------------------------|-----------| +| Total Cases | *Number of test cases executed for the scenario.* | +| Fully Correct Cases | *Number of test cases where the returned instructions matched perfectly.* | +| Score Matched Count | *Number of test cases where the final score matched the expected score.* | +| Average Test Case Score | *Average percentage score across all test cases.* | +| Correctly Detected Test Cases / Total Cases | *A ratio of how many test cases were correctly detected versus total cases.* | +| Total Cost | *Sum of all costs from all test cases.* | +| Average Cost | *Average cost per test case.* | +| Average Request Time (s) | *Average processing time per test case request.* | + +--- + +#### scenario_results.json + +**Location:** `results/run_name/scenario_name/scenario_results.json` +**Purpose:** A JSON representation of the scenario-level summary, similar to `scenario_summary.csv` but structured for programmatic consumption. + +**Sample Fields:** Same as scenario_summary.csv but in json form + +--- + +#### test_case_results.csv + +**Location:** `results/run_name/scenario_name/tables/test_case_results.csv` +**Purpose:** Lists key performance indicators for each test case in a scenario, allowing quick scanning for patterns or problematic areas. + +| Test Case | Test Case Detected Correctly | Test Case Score (%) | Expected Points | Total Returned Points | Cost | Request Time (s) | Wrong < Points | Wrong > Points | +|---------------------------|------------------------------|---------------------|----------------|-----------------------|----------|------------------|----------------|----------------| +| *Name of the test case* | *Yes/No if the test was correctly identified* | *Percentage of expected score achieved* | *Points expected from correct instructions* | *Points awarded by the AI* | *Monetary cost for this test case* | *Time taken for feedback request* | *Count of instructions where fewer points than expected were awarded* | *Count of instructions where more points than expected were awarded* | + +--- + +#### Individual Test Case Results ([individual test case results].json) + +**Location:** `results/run_name/scenario_name/test_cases/[test_case_name].json` +**Purpose:** Provides a detailed breakdown per test case, including expected vs. returned instructions, scoring, cost details, and raw feedback. + +**Example:** + +```json +{ + "test_case": "unlabelled_activity", + "expected_score": 8.0, + "returned_score": 9.0, + "test_case_detected_correctly": false, + "test_case_score_percent": 83.33333333333334, + "cost": { + "total_cost": 0.501525, + "total_input_cost": 0.07276500000000001, + "total_output_cost": 0.42876, + "details": [ + { + "llm": "o1-preview-2024-09-12", + "input_cost": 0.07276500000000001, + "output_cost": 0.42876, + "total": 0.501525 + } + ] + }, + "criteria_results": [ + { + "criterion_id": 7, + "criterion_textual_id": "naming_format", + "mismatch_pairs": [ + { + "expected": { + "id": 14, + "textual_id": "naming_format_incorrect", + "credits": 0.0, + "instructionDescription": "One or more tasks do not follow the Verb-Object format." + }, + "received": { + "id": 13, + "textual_id": "naming_format_correct", + "credits": 1.0, + "instructionDescription": "All tasks use 'Verb Object' naming.", + "feedbackDescription": "Task names follow the correct naming scheme." + } + } + ], + "missing_instructions": [], + "extra_instructions": [] + } + ], + "feedback": [ + { + "id": 6169, + "title": "Representation of Participants", + "description": "Great! Both participants are correctly modeled.", + "credits": 1.0, + "structured_grading_instruction_id": 1, + "is_graded": false, + "meta": {}, + "exercise_id": 1330572582, + "submission_id": 17, + "element_ids": [], + "reference": null + } + ... + ] +} +``` + +--- + +### Legend: What Each Means + +- **Test Case:** The name of the test case file that was evaluated. +- **Test Case Detected Correctly:** Indicates if the AI correctly recognized the introduced error or deviation in the test case. +- **Test Case Score (%):** How close the returned instructions matched the expected instructions, expressed as a percentage. See the "Interpreting Results" section for more details. +- **Expected Points:** The total points that would be awarded if the test case was perfectly solved. +- **Total Returned Points:** The actual points the AI assigned, based on its returned instructions. +- **Cost:** The computed monetary cost to evaluate this single test case, derived from token usage. +- **Request Time (s):** How long it took for the AI system to return feedback for this test case. +- **Wrong < Points:** The count of instructions where the AI awarded fewer points than expected, indicating missed opportunities or stricter-than-expected grading. +- **Wrong > Points:** The count of instructions where the AI awarded more points than expected, indicating overly lenient grading or misunderstanding. +- **criterion_id:** Internal numeric ID of the criterion. +- **criterion_textual_id:** Human-readable ID of the criterion. +- **mismatch_pairs:** Pairs of instructions showing where the expected instruction was replaced by a different (incorrect) instruction. +- **missing_instructions:** Instructions that should have been present but were not returned by the AI. +- **extra_instructions:** Instructions that the AI returned but were not expected. +- **feedback:** The actual feedback items generated by the AI, including title, description, credits, and any metadata. This shows exactly what the student would see. \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/core/scenario_evaluation.py b/tests/integration_tests/eunomia/eval/core/scenario_evaluation.py new file mode 100644 index 000000000..4d21f0f23 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/core/scenario_evaluation.py @@ -0,0 +1,26 @@ +from typing import List +from concurrent.futures import ThreadPoolExecutor, as_completed +from eval.core.test_case_runner import run_test_case +from eval.models.entities.scenario import Scenario +from eval.models.entities.test_case_result import TestCaseResult +from eval.models.entities.scenario_result import ScenarioResult + +def evaluate_scenario(scenario: Scenario) -> ScenarioResult: + evaluation_results: List[TestCaseResult] = [] + + with ThreadPoolExecutor(max_workers=10) as executor: + future_to_test_case = { + executor.submit(run_test_case, scenario, tc, i, 2, 5): tc + for i, tc in enumerate(scenario.test_cases) + } + + for future in as_completed(future_to_test_case): + tc = future_to_test_case[future] + result = future.result() + if result is None: + scenario.failed_tests_due_to_server.append(tc.name) + else: + evaluation_results.append(result) + + scenario_result = ScenarioResult(evaluation_results) + return scenario_result \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/core/test_case_runner.py b/tests/integration_tests/eunomia/eval/core/test_case_runner.py new file mode 100644 index 000000000..b81b604e9 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/core/test_case_runner.py @@ -0,0 +1,63 @@ +import json +import time +from typing import List, Tuple + +from eval.models.schemas.external.feedback import ModelingFeedback +from eval.utils.request_feedback import request_feedback +from eval.models.entities.scenario import Scenario +from eval.models.entities.test_case_result import TestCaseResult +from eval.models.schemas.external.api_response import LLMUsage + + +def run_test_case( + scenario: Scenario, + test_case, + index: int, + max_retries: int = 2, + retry_delay: int = 5 +) -> TestCaseResult | None: + """ + Attempt to run a single test case multiple times if failures occur (e.g., server issues). + If after max_retries+1 attempts it still fails, return a failed EvaluationResult. + """ + uml_model = _load_test_case_uml_model(test_case.file) + payload = { + "exercise": scenario.exercise.dict(), + "submission": { + "id": index, + "exerciseId": scenario.exercise.id, + "model": json.dumps(uml_model), + } + } + + for attempt in range(max_retries + 1): + try: + start_time = time.perf_counter() + feedback, llm_usage = _attempt_request_feedback(scenario.server_url, payload) + end_time = time.perf_counter() + + request_time = end_time - start_time + + return TestCaseResult(scenario, test_case, feedback, llm_usage, request_time) + except Exception as e: + if attempt < max_retries: + print(f"Test case '{test_case.name}' failed with error: {e}. Retrying in {retry_delay} seconds...") + time.sleep(retry_delay) + else: + print(f"Test case '{test_case.name}' failed after {max_retries + 1} attempts. Skipping this test case.") + return None + + return None + + +def _attempt_request_feedback(server_url: str, payload: dict) -> Tuple[List[ModelingFeedback], LLMUsage]: + """ + Attempt to request feedback from the server. Raises an exception if fails. + """ + feedback, llm_usage = request_feedback(server_url, payload) + return feedback, llm_usage + +def _load_test_case_uml_model(file_path: str) -> dict: + with open(file_path, 'r', encoding='utf-8') as f: + data = json.load(f) + return data diff --git a/tests/integration_tests/eunomia/eval/main.py b/tests/integration_tests/eunomia/eval/main.py new file mode 100644 index 000000000..3f1e75284 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/main.py @@ -0,0 +1,34 @@ +import sys +from eval.models.entities.evaluation_runner import EvaluationRunner +from pathlib import Path +from eval.utils.get_user_input import get_user_input + +def main(): + # Get user input + max_tests, test_files, run_name = get_user_input() + + # Construct absolute paths + project_root = Path(__file__).parent.parent.resolve() + scenarios_dir = project_root / "scenarios" + llm_cost_file = scenarios_dir / "llm_cost.yml" + + # Check if scenario directory and llm_cost.yml exist + if not scenarios_dir.exists(): + print(f"Scenario directory not found at {scenarios_dir}") + sys.exit(1) + + if not llm_cost_file.exists(): + print(f"llm_cost.yml not found at {llm_cost_file}") + sys.exit(1) + + # Create and run the evaluation runner + runner = EvaluationRunner( + scenarios_dir=scenarios_dir, + llm_cost_file=llm_cost_file, + run_name=run_name + ) + + runner.run_evaluation(max_tests, test_files) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/models/entities/evaluation_runner.py b/tests/integration_tests/eunomia/eval/models/entities/evaluation_runner.py new file mode 100644 index 000000000..4df6ca774 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/entities/evaluation_runner.py @@ -0,0 +1,191 @@ +import yaml +from pathlib import Path +from typing import List, Optional, Dict +from eval.models.schemas.external.llm_costs_config import LLMCostsConfig +from eval.models.schemas.external.structured_grading_instructions import Criterion, Instruction, StructuredGradingInstructions +from eval.models.schemas.internal.exercise import Exercise +from eval.models.schemas.internal.scenario_test_case import ScenarioTestCase +from eval.models.entities.scenario import Scenario +from eval.core.scenario_evaluation import evaluate_scenario +from eval.reporting.output_scenario_reports import output_results +from eval.utils.load_llm_cost_config import load_llm_cost_config +from eval.utils.filter_scenarios import filter_scenarios +from eval.utils.llm_cost_calculator import LLMCostCalculator + + +class EvaluationRunner: + """ + The EvaluationRunner is responsible for orchestrating the entire evaluation process: + - Loading a global LLM cost configuration from a specified path. + - Identifying and loading scenarios from a directory structure. + - Converting textual IDs to numeric IDs for criteria and instructions. + - Running the evaluation pipeline (fetching feedback, scoring, computing costs). + - Writing and aggregating scenario-level reports. + """ + + def __init__(self, + scenarios_dir: Path, + llm_cost_file: Path, + run_name: Optional[str] = None): + self.scenarios_dir = scenarios_dir + self.llm_cost_file = llm_cost_file + self.run_name = run_name + + self.llm_cost_config: Optional[LLMCostsConfig] = None + self.llm_cost_calculator: Optional[LLMCostCalculator] = None + + def run_evaluation(self, max_tests: Optional[int], test_files: Optional[List[str]]): + """ + Execute the full evaluation pipeline: + - Load global LLM cost configuration. + - Load all scenarios from the directory. + - Filter scenarios based on user input (max_tests, test_files). + - Evaluate each scenario and produce results. + + Args: + max_tests (int or None): Maximum number of test cases to run per scenario. + test_files (List[str] or None): Specific test files to run, overrides max_tests if provided. + """ + self._load_global_llm_costs() + scenarios = self._load_scenarios() + + # Filter scenarios + scenarios = filter_scenarios(scenarios, max_tests, test_files) + + # Evaluate and output results + self._evaluate_and_report_scenarios(scenarios) + + def _load_global_llm_costs(self): + self.llm_cost_config = load_llm_cost_config(self.llm_cost_file.parent) + self.llm_cost_calculator = LLMCostCalculator(self.llm_cost_config) + + def _load_scenarios(self) -> List[Scenario]: + scenarios = [] + for scenario_dir in self.scenarios_dir.iterdir(): + if scenario_dir.is_dir(): + scenario = self._build_scenario(scenario_dir) + if scenario: + scenarios.append(scenario) + return scenarios + + def _build_scenario(self, scenario_dir: Path) -> Optional[Scenario]: + manifest_path = scenario_dir / "manifest.yml" + if not manifest_path.exists(): + print(f"Skipping scenario directory {scenario_dir} due to missing manifest.yml") + return None + + manifest = self._load_manifest(manifest_path) + + # Process the manifest to build exercise and convert textual IDs + exercise, default_expected, test_case_diffs = self._create_exercise_from_manifest(manifest, scenario_dir) + + test_cases = self._load_test_cases(scenario_dir / "test_cases") + + scenario = Scenario( + server_url=manifest["server_url"], + exercise=exercise, + default_expected=default_expected, + test_case_diffs=test_case_diffs, + test_cases=test_cases + ) + + # Inject the global cost calculator + scenario.llm_cost_calculator = self.llm_cost_calculator + scenario.run_name = self.run_name + + return scenario + + def _load_manifest(self, manifest_path: Path) -> dict: + with manifest_path.open("r", encoding="utf-8") as f: + manifest = yaml.safe_load(f) + return manifest + + def _create_exercise_from_manifest(self, manifest: dict, scenario_dir: Path): + exercise_data = manifest["exercise"] + + # Extract criteria from the root level of the manifest + criteria_data = manifest["criteria"] + + # 1. Convert textual criteria IDs to numeric IDs + criteria_text_ids = [c_data["id"] for c_data in criteria_data] + criteria_id_map = {} + next_criteria_id = 1 + for ct_id in criteria_text_ids: + criteria_id_map[ct_id] = next_criteria_id + next_criteria_id += 1 + + # 2. Convert textual instruction IDs to numeric IDs + textual_ids = [instr_data["id"] for c_data in criteria_data for instr_data in c_data["instructions"]] + instruction_id_map = {} + next_id = 1 + for t_id in textual_ids: + instruction_id_map[t_id] = next_id + next_id += 1 + + # Convert instructions and criteria to structured objects with numeric IDs + converted_criteria: StructuredGradingInstructions = [] + for c_data in criteria_data: + converted_instructions = [] + for instr_data in c_data["instructions"]: + original_text_id = instr_data["id"] + new_integer_id = instruction_id_map[original_text_id] + instr_data["id"] = new_integer_id + instr_data["meta"] = {"textual_id": {new_integer_id: original_text_id}} + # Set usage_count if not present + if "usage_count" not in instr_data: + instr_data["usage_count"] = 1 + converted_instructions.append(Instruction(**instr_data)) + + original_text_id = c_data["id"] + new_integer_id = criteria_id_map[original_text_id] + criterion = Criterion( + id=new_integer_id, + title=c_data["title"], + structured_grading_instructions=converted_instructions, + meta={"textual_id": {new_integer_id: original_text_id}} + ) + converted_criteria.append(criterion) + + # Convert default_expected and test_case_diffs from textual to numeric + default_expected_text = manifest.get("default_expected", []) + test_case_diffs_text = manifest.get("test_case_diffs", {}) + + # Convert default_expected textual to numeric + default_expected = [instruction_id_map[t_id] for t_id in default_expected_text] + + # Convert test_case_diffs textual to numeric + test_case_diffs: Dict[int, Dict[str, int]] = {} + for correct_t_id, cases_dict in test_case_diffs_text.items(): + correct_id = instruction_id_map[correct_t_id] + test_case_diffs[correct_id] = {} + for tc_name, new_t_id in cases_dict.items(): + test_case_diffs[correct_id][tc_name] = instruction_id_map[new_t_id] + + # Insert the processed criteria into the exercise_data + exercise_data["grading_criteria"] = converted_criteria + + # If example_solution is a string (filename), load it + if "example_solution" in exercise_data and isinstance(exercise_data["example_solution"], str): + example_solution_path = scenario_dir / exercise_data["example_solution"] + if example_solution_path.exists(): + with example_solution_path.open("r", encoding="utf-8") as f: + example_solution_data = f.read() + exercise_data["example_solution"] = example_solution_data + else: + print(f"Warning: example solution file '{exercise_data['example_solution']}' not found in {scenario_dir}") + + exercise = Exercise(**exercise_data) + + return exercise, default_expected, test_case_diffs + + def _load_test_cases(self, test_cases_dir: Path): + test_cases = [] + if test_cases_dir.exists(): + for tc_file in test_cases_dir.glob("*.json"): + test_cases.append(ScenarioTestCase(name=tc_file.stem, file=str(tc_file))) + return test_cases + + def _evaluate_and_report_scenarios(self, scenarios: List[Scenario]): + for scenario in scenarios: + scenario_result = evaluate_scenario(scenario) + output_results(scenario, scenario_result) diff --git a/tests/integration_tests/eunomia/eval/models/entities/scenario.py b/tests/integration_tests/eunomia/eval/models/entities/scenario.py new file mode 100644 index 000000000..2dff8d4ae --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/entities/scenario.py @@ -0,0 +1,83 @@ +import os +from typing import List, Dict, Optional, Tuple +from eval.models.schemas.internal.exercise import Exercise +from eval.models.schemas.internal.scenario_test_case import ScenarioTestCase +from eval.utils.llm_cost_calculator import LLMCostCalculator + +class Scenario: + def __init__( + self, + server_url: str, + exercise: Exercise, + default_expected: List[int], + test_case_diffs: Optional[Dict[int, Dict[str, int]]] = None, + test_cases: Optional[List[ScenarioTestCase]] = None + ): + self.failed_tests_due_to_server: List[str] = [] + self.server_url = server_url + self.exercise = exercise + self.criteria = exercise.grading_criteria + self.default_expected = default_expected + self.test_case_diffs = test_case_diffs or {} + self.test_cases = test_cases or [] + self.run_name: Optional[str] = None + self.llm_cost_calculator : Optional[LLMCostCalculator] = None + + self.instr_id_to_textual_id = {} + self.instr_id_to_description = {} + + for c in self.criteria: + for instr in c.structured_grading_instructions: + textual_id_dict = instr.meta.get("textual_id", {}) + textual_id = textual_id_dict.get(instr.id) + if textual_id: + self.instr_id_to_textual_id[instr.id] = textual_id + + self.instr_id_to_description[instr.id] = instr.instruction_description + + self.instr_to_crit = {} + self.instr_to_credits = {} + for c in self.criteria: + for instr in c.structured_grading_instructions: + self.instr_to_crit[instr.id] = c.id + self.instr_to_credits[instr.id] = instr.credits + + # Build a lookup from global_id to instruction credits + self.global_id_to_credits = {} + for c in self.criteria: + for instr in c.structured_grading_instructions: + self.global_id_to_credits[instr.id] = instr.credits + + self.criterion_id_to_textual_id = {} + for c in self.criteria: + self.criterion_id_to_textual_id[c.id] = c.meta.get("textual_id", {}).get(c.id, None) + + self.initialize_test_case_expectations() + + def compute_expected_for_test_case(self, test_case_name: str) -> Tuple[List[int], float]: + # Start with default_expected + expected_instructions = self.default_expected[:] + + # We have the default_expected structured grading instruction that we assume to be applied for the sample solution (perfect diagram). For each test case we change certain aspects of this perfect solution to see if the model correctly identifies the changes and applies a corresponding instruction. For each test case our expected instructions slightly differ. This difference is stored in test_case_diffs. Therefore we start with the default_expected and check which of our expected instructions differ and change them accordingly. + for i, instr_id in enumerate(expected_instructions): + if instr_id in self.test_case_diffs: + if test_case_name in self.test_case_diffs[instr_id]: + expected_instructions[i] = self.test_case_diffs[instr_id][test_case_name] + + # Compute the total credits for the test case based on the sum of credits of the expected instructions + total_score = sum(self.global_id_to_credits[i_id] for i_id in expected_instructions) + + return expected_instructions, total_score + + def initialize_test_case_expectations(self): + for tc in self.test_cases: + e_instructions, e_score = self.compute_expected_for_test_case(tc.name) + tc.expected_instructions = e_instructions + tc.expected_score = e_score + + def get_results_base_dir(self) -> str: + scenario_title_dir = self.exercise.title.replace(" ", "_") + if self.run_name: + return os.path.join("results", self.run_name, scenario_title_dir) + else: + return os.path.join("results", scenario_title_dir) diff --git a/tests/integration_tests/eunomia/eval/models/entities/scenario_result.py b/tests/integration_tests/eunomia/eval/models/entities/scenario_result.py new file mode 100644 index 000000000..b3d760d78 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/entities/scenario_result.py @@ -0,0 +1,49 @@ +from typing import Dict, List +from eval.models.entities.test_case_result import TestCaseResult + +class ScenarioResult: + def __init__(self, evaluation_results: List[TestCaseResult]): + self.evaluation_results = evaluation_results + self.total_cases = len(evaluation_results) + self.fully_correct = sum(r.correct for r in evaluation_results) + self.score_matched_count = sum(r.score_match for r in evaluation_results) + self.missed_instruction_counts = self._compute_missed_instruction_counts(evaluation_results) + + # Compute additional metrics like test cases detected correctly + self.test_case_detected_correctly_count = sum(1 for r in evaluation_results if r.test_case_detected_correctly) + + # Compute average test case score + if self.total_cases > 0: + self.average_test_case_score = sum(r.test_case_score_percent for r in evaluation_results) / self.total_cases + self.average_request_time = sum(r.request_time for r in evaluation_results) / self.total_cases + else: + self.average_test_case_score = 0.0 + self.average_request_time = 0.0 + + self.total_cost = self._compute_total_cost() + self.average_cost = self.total_cost / self.total_cases if self.total_cases > 0 else 0.0 + + def _compute_total_cost(self) -> float: + total_cost = 0.0 + for r in self.evaluation_results: + if r.case_costs is not None: + total_cost += r.case_costs.total_usage.total_cost + return total_cost + + def _compute_missed_instruction_counts(self, evaluation_results: List[TestCaseResult]) -> Dict[int, int]: + counts = {} + for r in evaluation_results: + for instr_id in r.missing_instructions: + counts[instr_id] = counts.get(instr_id, 0) + 1 + return counts + + def to_dict(self) -> Dict: + return { + "total_cases": self.total_cases, + "fully_correct": self.fully_correct, + "score_matched_count": self.score_matched_count, + "missed_instruction_counts": self.missed_instruction_counts, + "test_case_detected_correctly_count": self.test_case_detected_correctly_count, + "average_test_case_score": self.average_test_case_score, + "average_request_time_seconds": self.average_request_time + } diff --git a/tests/integration_tests/eunomia/eval/models/entities/test_case_result.py b/tests/integration_tests/eunomia/eval/models/entities/test_case_result.py new file mode 100644 index 000000000..5009eaf55 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/entities/test_case_result.py @@ -0,0 +1,380 @@ +from typing import Dict, List, Tuple, Any, Optional, TypedDict +from eval.models.schemas.external.api_response import LLMUsage +from eval.models.schemas.external.feedback import ModelingFeedback +from eval.models.entities.scenario import Scenario +from eval.models.schemas.external.llm_costs_config import CaseCostResult +from eval.models.schemas.internal.scenario_test_case import ScenarioTestCase +from collections import defaultdict + +FLOAT_TOLERANCE = 1e-6 + + +class Mismatch(TypedDict): + expected_instr_id: Optional[int] + expected_crit_id: Optional[int] + returned_instr_id: Optional[int] + returned_crit_id: Optional[int] + +class TestCaseResult: + def __init__( + self, + scenario: Scenario, + test_case: ScenarioTestCase, + feedback: List[ModelingFeedback], + llm_usage: LLMUsage, + request_time: float + ): + self._scenario = scenario + self.name: str = test_case.name + self.expected_instructions: List[int] = test_case.expected_instructions or [] + self.expected_score: float = test_case.expected_score or 0.0 + self.request_time = request_time + + self.feedback: List[ModelingFeedback] = feedback + self.llm_usage: LLMUsage = llm_usage + + self._initialize_computed_properties(scenario) + + self.case_costs: Optional[CaseCostResult] = None + + if scenario.llm_cost_calculator: + self.case_costs = scenario.llm_cost_calculator.compute_case_costs(llm_usage) + + def _initialize_computed_properties(self, scenario: Any) -> None: + """Initialize all computed metrics for this evaluation result.""" + self.feedback_info = self._prepare_feedback_info(scenario, self.feedback) + + self.returned_instructions = self._compute_returned_instructions(self.feedback_info) + self.unrecognized_instructions = self._compute_unrecognized_instructions(self.feedback_info) + self.returned_score = self._compute_returned_score(self.feedback_info) + self.returned_score_including_unreferenced = self._compute_returned_score_including_unreferenced(self.feedback_info) + + self.missing_instructions = self._compute_missing_instructions() + self.extra_instructions = self._compute_extra_instructions() + self.correct = self._compute_correctness() + self.score_match = self._compute_score_match() + + self.test_case_detected_correctly, self.test_case_score_percent = self._compute_test_case_detection_metrics(scenario) + self.instructions_wrong_less, self.instructions_wrong_more = self._compute_point_discrepancies(scenario) + + def _prepare_feedback_info( + self, + scenario: Any, + feedback: List[ModelingFeedback] + ) -> List[Tuple[Optional[int], bool, float]]: + """ + Process each feedback item and return a list of tuples: + (global_id, recognized, credits). + """ + return [ + ( + self._extract_global_id(fb_item), + self._is_recognized_instruction(self._extract_global_id(fb_item), scenario), + fb_item.credits, + ) + for fb_item in feedback + ] + + def _extract_global_id(self, feedback_item: ModelingFeedback) -> Optional[int]: + """Extract the global instruction ID from a feedback item.""" + global_id = feedback_item.structured_grading_instruction_id + return int(global_id) if global_id is not None else None + + def _is_recognized_instruction(self, global_id: Optional[int], scenario: Any) -> bool: + """Determine if a given global_id is recognized within the scenario.""" + return global_id is not None and global_id in scenario.global_id_to_credits + + def _compute_returned_instructions(self, feedback_info: List[Tuple[Optional[int], bool, float]]) -> List[int]: + """ + Compute the list of returned instructions from prepared feedback info. + """ + return [ + global_id for global_id, recognized, _ in feedback_info + if global_id is not None and recognized + ] + + def _compute_unrecognized_instructions(self, feedback_info: List[Tuple[Optional[int], bool, float]]) -> List[int]: + """ + Compute the list of unrecognized instructions from prepared feedback info. + """ + return [ + global_id for global_id, recognized, _ in feedback_info + if global_id is not None and not recognized + ] + + def _compute_returned_score(self, feedback_info: List[Tuple[Optional[int], bool, float]]) -> float: + """ + Compute the returned score (sum of credits for recognized instructions). + """ + return sum(credits for _, recognized, credits in feedback_info if recognized) + + def _compute_returned_score_including_unreferenced(self, feedback_info: List[Tuple[Optional[int], bool, float]]) -> float: + """ + Compute the returned score including unreferenced instructions (sum of all credits). + """ + return sum(credits for _, _, credits in feedback_info) + + def _compute_missing_instructions(self) -> List[int]: + """Compute the list of instructions expected but not returned.""" + return [instr for instr in self.expected_instructions if instr not in self.returned_instructions] + + def _compute_extra_instructions(self) -> List[int]: + """Compute the list of instructions that are extra (returned but neither expected nor unrecognized).""" + return [ + instr for instr in self.returned_instructions + if instr not in self.expected_instructions and instr not in self.unrecognized_instructions + ] + + def _compute_correctness(self) -> bool: + """Check if all expected instructions are present and no unrecognized instructions are found.""" + return not self.missing_instructions and not self.unrecognized_instructions + + def _compute_score_match(self) -> bool: + """Check if the returned score matches the expected score within a tolerance.""" + return abs(self.expected_score - self.returned_score) < FLOAT_TOLERANCE + + def _compute_test_case_detection_metrics(self, scenario: Any) -> Tuple[bool, float]: + """ + Compute whether the test case was detected correctly and the weighted percentage score. + """ + diff_instructions_for_tc = self._get_diff_instructions_for_test_case(scenario) + total_weight, achieved_weight = self._compute_weighted_scores(diff_instructions_for_tc) + test_case_detected_correctly = diff_instructions_for_tc.issubset(self.returned_instructions) + test_case_score_percent = (achieved_weight / total_weight * 100.0) if total_weight > 0 else 0.0 + return test_case_detected_correctly, test_case_score_percent + + def _get_diff_instructions_for_test_case(self, scenario: Any) -> set: + """ + Retrieve the set of diff instructions associated with this test case from the scenario. + """ + diff_instructions_for_tc = { + cases_dict[self.name] + for correct_id, cases_dict in scenario.test_case_diffs.items() + if self.name in cases_dict + } + return diff_instructions_for_tc + + def _compute_weighted_scores(self, diff_instructions_for_tc: set) -> Tuple[int, int]: + """ + Compute the total and achieved weights for instructions, + giving double weight to those in the diff_instructions_for_tc set. + """ + total_weight = 0 + achieved_weight = 0 + for instr_id in self.expected_instructions: + weight = 2 if instr_id in diff_instructions_for_tc else 1 + total_weight += weight + if instr_id in self.returned_instructions: + achieved_weight += weight + return total_weight, achieved_weight + + def _compute_point_discrepancies(self, scenario: Any) -> Tuple[int, int]: + """ + This function focuses on analyzing grading discrepancies at the level of criteria and their associated instructions. Each scenario criterion outlines a set of instructions, each with a certain point value, that represent the "ideal" solution for that criterion. If the student's submission deviates from these expectations, we want to determine in terms of gained or lost points relative to the ideal scenario. + + Logic: + - Group missing and extra instructions by their criterion. + - Pair a missing with an extra one-to-one. If returned credits > expected credits -> wrong_more else wrong_less. + - Any leftover missing instructions -> wrong_less (lost points). + - Any leftover extra instructions -> decide based on their credits. If >0 -> wrong_more, else wrong_less. + """ + + wrong_less = 0 + wrong_more = 0 + + # Group instructions by criterion + instructions_by_crit = defaultdict(lambda: {"missing": [], "extra": []}) + get_credits = scenario.instr_to_credits.get + + # Sort missing instructions into their respective criteria + for instr_id in self.missing_instructions: + crit_id = scenario.instr_to_crit.get(instr_id) + if crit_id is None: + # No criterion means we lost points expected somewhere, count as wrong_less + wrong_less += 1 + else: + instructions_by_crit[crit_id]["missing"].append(instr_id) + + # Sort extra instructions into their respective criteria + for instr_id in self.extra_instructions: + crit_id = scenario.instr_to_crit.get(instr_id) + if crit_id is None: + # No expected criterion; assume wrong_more if >0 credits, else wrong_less + if get_credits(instr_id, 0) > 0: + wrong_more += 1 + else: + wrong_less += 1 + else: + instructions_by_crit[crit_id]["extra"].append(instr_id) + + # Now pair them up criterion by criterion + for crit_id, groups in instructions_by_crit.items(): + missing_list = groups["missing"] + extra_list = groups["extra"] + + # Pair missing and extra one-to-one + while missing_list and extra_list: + expected_i = missing_list.pop() + returned_i = extra_list.pop() + + exp_credits = get_credits(expected_i, 0) + ret_credits = get_credits(returned_i, 0) + if ret_credits > exp_credits: + wrong_more += 1 + else: + wrong_less += 1 + + # Unpaired missing instructions: we lost these points + wrong_less += len(missing_list) + + # Unpaired extra instructions: guess based on their credits + for e_i in extra_list: + if get_credits(e_i, 0) > 0: + wrong_more += 1 + else: + wrong_less += 1 + + return wrong_less, wrong_more + + def _instr_details(self, instr_id: int, scenario: Any, received: bool) -> Dict[str, Any]: + details = { + "id": instr_id, + "textual_id": scenario.instr_id_to_textual_id.get(instr_id), + "credits": scenario.instr_to_credits.get(instr_id, 0.0), + "instructionDescription": scenario.instr_id_to_description.get(instr_id) + } + + # If the instruction was actually received, try to find the corresponding feedback from this test's results. + if received: + for fb in self.feedback: + if fb.structured_grading_instruction_id == instr_id: + details["feedbackDescription"] = fb.description + break + + return details + + + def _build_criteria_results(self, scenario: Any) -> Dict[str, Any]: + """ + Build a structure that shows only the mismatches by criterion, plus any unmapped instructions. + Uses "received" for instructions that were actually returned by the student's solution, + and not for those that were only expected but not returned. + """ + + # Organize expected and returned instructions by criterion + criterion_expected = {} + criterion_returned = {} + + for instr_id in self.expected_instructions: + crit_id = scenario.instr_to_crit.get(instr_id) + if crit_id is not None: + criterion_expected.setdefault(crit_id, set()).add(instr_id) + + for instr_id in self.returned_instructions: + crit_id = scenario.instr_to_crit.get(instr_id) + if crit_id is not None: + criterion_returned.setdefault(crit_id, set()).add(instr_id) + + # Identify unmapped extra instructions + all_returned = set(self.returned_instructions) + all_expected = set(self.expected_instructions) + truly_extra = all_returned - all_expected + + unmapped_instructions = [] + for instr_id in truly_extra: + crit_id = scenario.instr_to_crit.get(instr_id) + if crit_id is None: + # Unmapped instructions were returned, so received=True + unmapped_instructions.append(self._instr_details(instr_id, scenario, received=True)) + + # Handle mismatches per criterion + criteria_mismatches = [] + all_criteria = set(criterion_expected.keys()) | set(criterion_returned.keys()) + + for crit_id in all_criteria: + exp = criterion_expected.get(crit_id, set()) + ret = criterion_returned.get(crit_id, set()) + + missing = exp - ret + extra = ret - exp + + # Attempt to pair them one-to-one + paired = [] + missing_list = sorted(missing) + extra_list = sorted(extra) + + while missing_list and extra_list: + m = missing_list.pop(0) + e = extra_list.pop(0) + paired.append((m, e)) + + # Construct mismatch structure only if there is something to report + if paired or missing_list or extra_list: + crit_text_id = scenario.criterion_id_to_textual_id.get(crit_id) + criterion_data = { + "criterion_id": crit_id, + "criterion_textual_id": crit_text_id, + "mismatch_pairs": [ + { + # expected not received => received=False + "expected": self._instr_details(m, scenario, received=False), + # received was actually returned => received=True + "received": self._instr_details(e, scenario, received=True) + } + for (m, e) in paired + ], + # missing are expected but not received => received=False + "missing_instructions": [self._instr_details(m, scenario, received=False) for m in missing_list], + # extra are returned but not expected => received=True + "extra_instructions": [self._instr_details(e, scenario, received=True) for e in extra_list] + } + criteria_mismatches.append(criterion_data) + + result = {} + if criteria_mismatches: + result["criteria_results"] = criteria_mismatches + if unmapped_instructions: + result["unmapped_instructions"] = unmapped_instructions + + return result + + + def to_dict(self) -> Dict: + """ + Convert the test case result to a dictionary representation, + focusing on mismatches and relevant feedback. + """ + # Get mismatch data + criteria_mismatch_data = self._build_criteria_results(self._scenario) + + # Basic fields + result = { + "test_case": self.name, + "expected_score": self.expected_score, + "returned_score": self.returned_score, + "test_case_detected_correctly": self.test_case_detected_correctly, + "test_case_score_percent": self.test_case_score_percent + } + + if self.case_costs: + # Convert typed model costs to dict + cost_details = [ + { + "llm": m.model, + "input_cost": m.input_cost, + "output_cost": m.output_cost, + "total": m.total_cost + } + for m in self.case_costs.model_costs.values() + ] + result["cost"] = { + "total_cost": self.case_costs.total_usage.total_cost, + "total_input_cost": self.case_costs.total_usage.input_cost, + "total_output_cost": self.case_costs.total_usage.output_cost, + "details": cost_details + } + + result.update(criteria_mismatch_data) + result["feedback"] = [f.dict() for f in self.feedback] + + return result \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/models/schemas/external/api_response.py b/tests/integration_tests/eunomia/eval/models/schemas/external/api_response.py new file mode 100644 index 000000000..2bda40e8b --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/schemas/external/api_response.py @@ -0,0 +1,28 @@ +from typing import List +from pydantic import BaseModel, Field + +from eval.models.schemas.external.feedback import ModelingFeedback + +class LLMRequest(BaseModel): + model: str + costPerMillionInputToken: float + costPerMillionOutputToken: float + numInputTokens: int + numOutputTokens: int + numTotalTokens: int + +class TotalUsage(BaseModel): + numInputTokens: int + numOutputTokens: int + numTotalTokens: int + cost: float + +class LLMUsage(BaseModel): + totalUsage: TotalUsage + llmRequests: List[LLMRequest] = Field(default_factory=list) + +class APIResponse(BaseModel): + module_name: str + status: int + data: List[ModelingFeedback] = Field(default_factory=list) + meta: LLMUsage diff --git a/tests/integration_tests/eunomia/eval/models/schemas/external/feedback.py b/tests/integration_tests/eunomia/eval/models/schemas/external/feedback.py new file mode 100644 index 000000000..bbc467f13 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/schemas/external/feedback.py @@ -0,0 +1,20 @@ +from typing import Optional, List +from pydantic import BaseModel, Field, ConfigDict + +class Feedback(BaseModel): + model_config = ConfigDict(populate_by_name=True) # Allow aliases + + id: Optional[int] = None + title: Optional[str] = None + description: Optional[str] = None + credits: float = 0.0 + structured_grading_instruction_id: Optional[int] = Field(None, alias="structuredGradingInstructionId") + is_graded: Optional[bool] = Field(None, alias="isGraded") + meta: dict = Field(default_factory=dict) + exercise_id: int = Field(..., alias="exerciseId") + submission_id: int = Field(..., alias="submissionId") + + +class ModelingFeedback(Feedback): + element_ids: Optional[List[str]] = Field(default_factory=list, alias="elementIds") + reference: Optional[str] = None \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/models/schemas/external/llm_costs_config.py b/tests/integration_tests/eunomia/eval/models/schemas/external/llm_costs_config.py new file mode 100644 index 000000000..817ffbd49 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/schemas/external/llm_costs_config.py @@ -0,0 +1,50 @@ +from pydantic import BaseModel, Field, PositiveFloat +from typing import Dict +from dataclasses import dataclass + +class ModelCostConfig(BaseModel): + input_cost_per_million: PositiveFloat = Field(..., description="Cost per million input tokens") + output_cost_per_million: PositiveFloat = Field(..., description="Cost per million output tokens") + +class LLMCostsConfig(BaseModel): + llm_costs: Dict[str, ModelCostConfig] = Field( + ..., + description="A mapping from model name to its cost configuration." + ) + +@dataclass(frozen=True) +class ModelCostBreakdown: + model: str + total_calls: int + total_input_tokens: int + total_output_tokens: int + input_cost: float + output_cost: float + + @property + def total_cost(self) -> float: + return self.input_cost + self.output_cost + +@dataclass(frozen=True) +class TotalCostUsage: + num_input_tokens: int + num_output_tokens: int + input_cost: float + output_cost: float + + @property + def total_tokens(self) -> int: + return self.num_input_tokens + self.num_output_tokens + + @property + def total_cost(self) -> float: + return self.input_cost + self.output_cost + +@dataclass(frozen=True) +class CaseCostResult: + total_usage: TotalCostUsage + model_costs: Dict[str, ModelCostBreakdown] + + +class UnknownModelException(Exception): + """Raised when a model usage is encountered that does not exist in the cost config.""" diff --git a/tests/integration_tests/eunomia/eval/models/schemas/external/structured_grading_instructions.py b/tests/integration_tests/eunomia/eval/models/schemas/external/structured_grading_instructions.py new file mode 100644 index 000000000..f8a266b88 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/schemas/external/structured_grading_instructions.py @@ -0,0 +1,20 @@ +from typing import Any, Dict, List +from pydantic import BaseModel + + +class Instruction(BaseModel): + id: int + credits: float + grading_scale: str + instruction_description: str + feedback: str + usage_count: int + meta: Dict[str, Any] = {} + +class Criterion(BaseModel): + id: int + title: str + structured_grading_instructions: List[Instruction] + meta: Dict[str, Any] = {} + +StructuredGradingInstructions = List[Criterion] \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/models/schemas/internal/exercise.py b/tests/integration_tests/eunomia/eval/models/schemas/internal/exercise.py new file mode 100644 index 000000000..adf79d6e4 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/schemas/internal/exercise.py @@ -0,0 +1,17 @@ +import uuid +from typing import Dict, Optional +from pydantic import BaseModel, Field +from eval.models.schemas.external.structured_grading_instructions import StructuredGradingInstructions + + +class Exercise(BaseModel): + id: int = Field(default_factory=lambda: abs(uuid.uuid4().int) % (2**31 - 1)) + title: str + type: str + max_points: float + bonus_points: float + grading_instructions: str + problem_statement: str + example_solution: Optional[str] = None + grading_criteria: StructuredGradingInstructions + meta: Dict = Field(default_factory=dict) \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/models/schemas/internal/scenario_test_case.py b/tests/integration_tests/eunomia/eval/models/schemas/internal/scenario_test_case.py new file mode 100644 index 000000000..ca0281b35 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/models/schemas/internal/scenario_test_case.py @@ -0,0 +1,11 @@ +from typing import List, Optional +from pydantic import BaseModel + +class ScenarioTestCase(BaseModel): + # The name should match the test case JSON file's stem + name: str + # Path to the JSON file containing the test case data + file: str + # After scenario computation, these will be filled + expected_instructions: Optional[List[int]] = None + expected_score: Optional[float] = None \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/reporting/helpers/generate_scenario_dataframes.py b/tests/integration_tests/eunomia/eval/reporting/helpers/generate_scenario_dataframes.py new file mode 100644 index 000000000..a41bc5834 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/reporting/helpers/generate_scenario_dataframes.py @@ -0,0 +1,87 @@ +import pandas as pd +from typing import Dict +from eval.models.entities.scenario_result import ScenarioResult +from eval.models.entities.scenario import Scenario + + +def generate_scenario_dataframes( + scenario: Scenario, + scenario_result: ScenarioResult +) -> Dict[str, pd.DataFrame]: + """ + Generate DataFrames for scenario summary, test case results, and missed criteria, + applying final column names and derived columns directly so minimal downstream + transformation is required. + """ + + # Scenario-level summary metrics + correct_count = sum(r.test_case_detected_correctly for r in scenario_result.evaluation_results) + + scenario_data = [ + ["Total Cases", scenario_result.total_cases], + ["Fully Correct Cases", scenario_result.fully_correct], + ["Score Matched Count", scenario_result.score_matched_count], + ["Average Test Case Score", f"{scenario_result.average_test_case_score:.2f}"], + ["Correctly Detected Test Cases / Total Cases", f"{correct_count} / {scenario_result.total_cases}"], + ["Total Cost", f"{scenario_result.total_cost:.4f}"], + ["Average Cost", f"{scenario_result.average_cost:.4f}"], + ["Average Request Time (s)", f"{scenario_result.average_request_time:.4f}"] + ] + scenario_df = pd.DataFrame(scenario_data, columns=["Metric", "Value"]) + + # Per-test-case DataFrame with final naming and derived columns + test_case_rows = [] + + for er in scenario_result.evaluation_results: + cost_value = f"{er.case_costs.total_usage.total_cost:.4f}" if er.case_costs else "0.0000" + + test_case_rows.append({ + "Test Case": er.name, + "Test Case Detected Correctly": "Yes" if er.test_case_detected_correctly else "No", + "Test Case Score (%)": f"{er.test_case_score_percent:.2f}", + "Expected Points": er.expected_score, + "Total Returned Points": er.returned_score, + "Cost": cost_value, + "Request Time (s)": f"{er.request_time:.4f}" + }) + + test_case_df = pd.DataFrame(test_case_rows) + + # Add "Wrong < Points" and "Wrong > Points" columns directly + wrong_less_list = [] + wrong_more_list = [] + for er in scenario_result.evaluation_results: + wrong_less_list.append(er.instructions_wrong_less) + wrong_more_list.append(er.instructions_wrong_more) + + test_case_df["Wrong < Points"] = wrong_less_list + test_case_df["Wrong > Points"] = wrong_more_list + + # Aggregate missed criteria + instr_to_crit = {} + for c in scenario.criteria: + for instr in c.structured_grading_instructions: + instr_to_crit[instr.id] = c.id + + missed_criteria_counts = {} + for instr_id, count in scenario_result.missed_instruction_counts.items(): + crit_id = instr_to_crit.get(instr_id) + if crit_id is None: + continue + crit_text_id = scenario.criterion_id_to_textual_id.get(crit_id, str(crit_id)) + missed_criteria_counts[crit_text_id] = missed_criteria_counts.get(crit_text_id, 0) + count + + if missed_criteria_counts: + missed_criteria_data = [ + [crit_text_id, total_count] + for crit_text_id, total_count in missed_criteria_counts.items() + ] + missed_criteria_df = pd.DataFrame(missed_criteria_data, columns=["Criterion (Textual ID)", "Missed Count"]) + else: + missed_criteria_df = pd.DataFrame(columns=["Criterion (Textual ID)", "Missed Count"]) + + return { + "scenario_summary": scenario_df, + "test_case_results": test_case_df, + "missed_criteria": missed_criteria_df + } diff --git a/tests/integration_tests/eunomia/eval/reporting/output_scenario_reports.py b/tests/integration_tests/eunomia/eval/reporting/output_scenario_reports.py new file mode 100644 index 000000000..3ea2e07b4 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/reporting/output_scenario_reports.py @@ -0,0 +1,17 @@ +from eval.models.entities.scenario import Scenario +from eval.reporting.write_file_scenario_csv_report import write_file_scenario_csv_report +from eval.reporting.write_file_scenario_json_report import write_file_scenario_json_report +from eval.reporting.write_file_test_case_json_report import write_file_test_case_json_report +from eval.reporting.write_terminal_scenario_summary_report import write_terminal_scenario_summary_report +from eval.models.entities.scenario_result import ScenarioResult + +def output_results(scenario: Scenario, scenario_result: ScenarioResult) -> None: + """ + Output all scenario results + """ + # Terminal + write_terminal_scenario_summary_report(scenario, scenario_result) + # Files + write_file_scenario_csv_report(scenario, scenario_result) + write_file_scenario_json_report(scenario, scenario_result) + write_file_test_case_json_report(scenario, scenario_result) diff --git a/tests/integration_tests/eunomia/eval/reporting/write_file_scenario_csv_report.py b/tests/integration_tests/eunomia/eval/reporting/write_file_scenario_csv_report.py new file mode 100644 index 000000000..c4f149307 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/reporting/write_file_scenario_csv_report.py @@ -0,0 +1,17 @@ +import os +from eval.models.entities.scenario_result import ScenarioResult +from eval.models.entities.scenario import Scenario +from eval.reporting.helpers.generate_scenario_dataframes import generate_scenario_dataframes + +def write_file_scenario_csv_report(scenario: Scenario, scenario_result: ScenarioResult) -> None: + base_dir = scenario.get_results_base_dir() + results_dir = os.path.join(base_dir, "tables") + os.makedirs(results_dir, exist_ok=True) + + dfs = generate_scenario_dataframes(scenario, scenario_result) + + scenario_df = dfs["scenario_summary"] + test_case_df = dfs["test_case_results"] + + scenario_df.to_csv(os.path.join(results_dir, "scenario_summary.csv"), index=False) + test_case_df.to_csv(os.path.join(results_dir, "test_case_results.csv"), index=False) diff --git a/tests/integration_tests/eunomia/eval/reporting/write_file_scenario_json_report.py b/tests/integration_tests/eunomia/eval/reporting/write_file_scenario_json_report.py new file mode 100644 index 000000000..d592153cd --- /dev/null +++ b/tests/integration_tests/eunomia/eval/reporting/write_file_scenario_json_report.py @@ -0,0 +1,18 @@ +import os +import json +from eval.models.entities.scenario import Scenario +from eval.models.entities.scenario_result import ScenarioResult +from eval.reporting.helpers.generate_scenario_dataframes import generate_scenario_dataframes + +def write_file_scenario_json_report(scenario: Scenario, scenario_result: ScenarioResult) -> None: + base_dir = scenario.get_results_base_dir() + os.makedirs(base_dir, exist_ok=True) + + dfs = generate_scenario_dataframes(scenario, scenario_result) + scenario_df = dfs["scenario_summary"] + + scenario_summary_dict = dict(zip(scenario_df["Metric"], scenario_df["Value"])) + + summary_file_path = os.path.join(base_dir, "scenario_results.json") + with open(summary_file_path, "w", encoding="utf-8") as f: + json.dump(scenario_summary_dict, f, indent=4) \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/reporting/write_file_test_case_json_report.py b/tests/integration_tests/eunomia/eval/reporting/write_file_test_case_json_report.py new file mode 100644 index 000000000..27400d83b --- /dev/null +++ b/tests/integration_tests/eunomia/eval/reporting/write_file_test_case_json_report.py @@ -0,0 +1,26 @@ +import os +import json +from pathlib import Path +from eval.models.entities.scenario import Scenario +from eval.models.entities.scenario_result import ScenarioResult + +def write_file_test_case_json_report(scenario: Scenario, scenario_result: ScenarioResult) -> None: + """ + Write the individual test case evaluation results as JSON files in the scenario's results directory. + No DataFrame transformations were needed here, so no changes are required. + """ + base_dir = scenario.get_results_base_dir() + results_dir = os.path.join(base_dir, "test_cases") + os.makedirs(results_dir, exist_ok=True) + + name_to_file_map = {tc.name: tc.file for tc in scenario.test_cases} + + for result in scenario_result.evaluation_results: + test_case_file_path = name_to_file_map.get(result.name) + if not test_case_file_path: + continue + test_case_file_name = Path(test_case_file_path).name + result_file_path = os.path.join(results_dir, test_case_file_name) + + with open(result_file_path, "w", encoding="utf-8") as f: + json.dump(result.to_dict(), f, indent=4) diff --git a/tests/integration_tests/eunomia/eval/reporting/write_terminal_scenario_summary_report.py b/tests/integration_tests/eunomia/eval/reporting/write_terminal_scenario_summary_report.py new file mode 100644 index 000000000..5b99f5c8b --- /dev/null +++ b/tests/integration_tests/eunomia/eval/reporting/write_terminal_scenario_summary_report.py @@ -0,0 +1,49 @@ +from rich.table import Table +from rich.console import Console +from rich import box + +from eval.models.entities.scenario_result import ScenarioResult +from eval.models.entities.scenario import Scenario +from eval.reporting.helpers.generate_scenario_dataframes import generate_scenario_dataframes + +def _create_rich_table_from_df(df, title: str) -> Table: + table = Table(title=title, box=box.MINIMAL_DOUBLE_HEAD, show_lines=True) + for col in df.columns: + table.add_column(col, style="bold", no_wrap=True, justify="left", max_width=20, overflow="ellipsis") + + for _, row in df.iterrows(): + row_values = [str(v) for v in row.values] + table.add_row(*row_values) + return table + +def _create_test_case_table(test_case_df) -> Table: + table = Table(title="Per Test Case Results", box=box.MINIMAL_DOUBLE_HEAD, show_lines=True) + for col in test_case_df.columns: + table.add_column(col, style="bold", no_wrap=True, max_width=20, overflow="ellipsis", justify="left") + + for _, row in test_case_df.iterrows(): + row_values = [] + for col in test_case_df.columns: + val = str(row[col]) + if col == "Test Case Detected Correctly": + val = val.strip().lower() + val = "[green]Yes[/]" if val == "yes" else "[red]No[/]" + row_values.append(val) + table.add_row(*row_values) + + return table + +def write_terminal_scenario_summary_report(scenario: Scenario, scenario_result: ScenarioResult) -> None: + """ + Print a scenario summary table and per-test-case results table to the terminal + """ + dfs = generate_scenario_dataframes(scenario, scenario_result) + scenario_df = dfs["scenario_summary"] + test_case_df = dfs["test_case_results"] + + console = Console() + test_case_table = _create_test_case_table(test_case_df) + scenario_table = _create_rich_table_from_df(scenario_df, title="Scenario Summary") + + console.print(test_case_table) + console.print(scenario_table) diff --git a/tests/integration_tests/eunomia/eval/utils/filter_scenarios.py b/tests/integration_tests/eunomia/eval/utils/filter_scenarios.py new file mode 100644 index 000000000..8a1009367 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/utils/filter_scenarios.py @@ -0,0 +1,32 @@ +from pathlib import Path +from typing import List, Optional + +def filter_scenarios( + scenarios, + max_tests: Optional[int] = None, + test_files: Optional[List[str]] = None +): + """ + Filter scenarios based on max_tests and test_files. + If test_files is provided, only test cases whose files match any in test_files are kept. + If max_tests is provided, truncate the test cases to that number. + """ + filtered = [] + for scenario in scenarios: + # Filter by test files if provided + if test_files is not None: + scenario.test_cases = [ + tc for tc in scenario.test_cases + if Path(tc.file).name in test_files + ] + if not scenario.test_cases: + print(f"No test cases found matching {test_files} in scenario '{scenario.exercise.title}'. Skipping scenario.") + continue + + # Limit number of test cases if max_tests is specified + if max_tests is not None and max_tests < len(scenario.test_cases): + scenario.test_cases = scenario.test_cases[:max_tests] + + filtered.append(scenario) + + return filtered \ No newline at end of file diff --git a/tests/integration_tests/eunomia/eval/utils/get_user_input.py b/tests/integration_tests/eunomia/eval/utils/get_user_input.py new file mode 100644 index 000000000..de5ffefce --- /dev/null +++ b/tests/integration_tests/eunomia/eval/utils/get_user_input.py @@ -0,0 +1,30 @@ +import questionary + +def get_user_input(): + # Prompt user for max tests or test files + input_str = questionary.text( + "Maximum number of test cases (integer), OR a comma-separated list of specific test file names (all):" + ).ask() + + if not input_str.strip(): + # User pressed Enter with no input + max_tests = None + test_files = None + else: + # Try interpreting input as an integer + try: + max_tests = int(input_str.strip()) + test_files = None + except ValueError: + # Not an integer, treat as list of files + test_files = [f.strip() for f in input_str.split(',') if f.strip()] + max_tests = None + + # Prompt for run name + run_name_input = questionary.text( + "Run name (test case name):" + ).ask() + run_name = run_name_input.strip() if run_name_input.strip() else None + + return max_tests, test_files, run_name + diff --git a/tests/integration_tests/eunomia/eval/utils/llm_cost_calculator.py b/tests/integration_tests/eunomia/eval/utils/llm_cost_calculator.py new file mode 100644 index 000000000..4564a22d0 --- /dev/null +++ b/tests/integration_tests/eunomia/eval/utils/llm_cost_calculator.py @@ -0,0 +1,63 @@ +# eval/utils/llm_cost_calculator.py + +from typing import Dict, Tuple +from eval.models.schemas.external.api_response import LLMUsage, LLMRequest +from eval.models.schemas.external.llm_costs_config import CaseCostResult, LLMCostsConfig, ModelCostBreakdown, TotalCostUsage, UnknownModelException + + +class LLMCostCalculator: + def __init__(self, config: LLMCostsConfig): + self.config = config + + def compute_case_costs(self, llm_usage: LLMUsage) -> CaseCostResult: + total_input_tokens = 0 + total_output_tokens = 0 + total_input_cost = 0.0 + total_output_cost = 0.0 + model_costs_map: Dict[str, ModelCostBreakdown] = {} + + for req in llm_usage.llmRequests: + input_cost, output_cost = self._compute_request_cost(req) + + total_input_tokens += req.numInputTokens + total_output_tokens += req.numOutputTokens + total_input_cost += input_cost + total_output_cost += output_cost + + if req.model not in model_costs_map: + model_costs_map[req.model] = ModelCostBreakdown( + model=req.model, + total_calls=0, + total_input_tokens=0, + total_output_tokens=0, + input_cost=0.0, + output_cost=0.0 + ) + + current = model_costs_map[req.model] + model_costs_map[req.model] = ModelCostBreakdown( + model=req.model, + total_calls=current.total_calls + 1, + total_input_tokens=current.total_input_tokens + req.numInputTokens, + total_output_tokens=current.total_output_tokens + req.numOutputTokens, + input_cost=current.input_cost + input_cost, + output_cost=current.output_cost + output_cost + ) + + total_usage = TotalCostUsage( + num_input_tokens=total_input_tokens, + num_output_tokens=total_output_tokens, + input_cost=total_input_cost, + output_cost=total_output_cost + ) + + return CaseCostResult(total_usage=total_usage, model_costs=model_costs_map) + + def _compute_request_cost(self, req: LLMRequest) -> Tuple[float, float]: + if req.model not in self.config.llm_costs: + raise UnknownModelException(f"Model '{req.model}' not defined in LLM costs configuration.") + + cost_conf = self.config.llm_costs[req.model] + input_cost = (req.numInputTokens / 1_000_000) * cost_conf.input_cost_per_million + output_cost = (req.numOutputTokens / 1_000_000) * cost_conf.output_cost_per_million + return input_cost, output_cost diff --git a/tests/integration_tests/eunomia/eval/utils/load_llm_cost_config.py b/tests/integration_tests/eunomia/eval/utils/load_llm_cost_config.py new file mode 100644 index 000000000..a37587c7d --- /dev/null +++ b/tests/integration_tests/eunomia/eval/utils/load_llm_cost_config.py @@ -0,0 +1,21 @@ +import yaml +from pathlib import Path +from pydantic import ValidationError +from eval.models.schemas.external.llm_costs_config import LLMCostsConfig + +def load_llm_cost_config(scenario_dir: Path) -> LLMCostsConfig: + llm_cost_path = scenario_dir / "llm_cost.yml" + if not llm_cost_path.exists(): + # You might choose to return a default config or raise an error. + # Here we raise an error because costs are critical. + raise FileNotFoundError(f"No llm_cost.yml found in scenario directory '{scenario_dir}'.") + + with open(llm_cost_path, "r", encoding="utf-8") as f: + data = yaml.safe_load(f) + + try: + config = LLMCostsConfig(**data) + except ValidationError as ve: + raise ValueError(f"Invalid LLM cost configuration: {ve}") from ve + + return config diff --git a/tests/integration_tests/eunomia/eval/utils/request_feedback.py b/tests/integration_tests/eunomia/eval/utils/request_feedback.py new file mode 100644 index 000000000..6664090ef --- /dev/null +++ b/tests/integration_tests/eunomia/eval/utils/request_feedback.py @@ -0,0 +1,51 @@ +import requests +from requests.exceptions import HTTPError +from typing import List, Tuple +from pydantic import ValidationError + +from eval.models.schemas.external.api_response import LLMUsage, APIResponse +from eval.models.schemas.external.feedback import ModelingFeedback + +def request_feedback(server_url: str, payload: dict) -> Tuple[List[ModelingFeedback], LLMUsage]: + """ + Sends a submission payload to the given server_url endpoint and returns a tuple containing: + - A list of ModelingFeedback objects as parsed from the server response. + - An LLMUsage object representing the LLM usage metadata. + + Args: + server_url (str): The URL of the athena server endpoint + payload (dict): The JSON-serializable dictionary payload containing submission data. + + Returns: + (List[ModelingFeedback], LLMUsage): A tuple of (feedback list, llm usage) instances. + """ + headers = { + "X-Server-URL": "http://localhost:8080", + "Authorization": "abcdef12345" + } + + # Send POST request to server + response = requests.post(server_url, json=payload, headers=headers) + try: + response.raise_for_status() + except HTTPError as http_err: + raise HTTPError(f"Server returned HTTP error: {http_err}") from http_err + + # Parse JSON content + try: + response_content = response.json() + + except ValueError as json_err: + raise ValueError("Failed to decode JSON response from the server.") from json_err + + # Parse the response into APIResponse + try: + api_response = APIResponse(**response_content) + except ValidationError as val_err: + raise ValidationError(f"Response did not match APIResponse schema: {val_err}") from val_err + + # Extract the data (list of ModelingFeedback) and meta (LLMUsage) + feedback_list = api_response.data + llm_usage = api_response.meta + + return feedback_list, llm_usage \ No newline at end of file diff --git a/tests/integration_tests/eunomia/poetry.lock b/tests/integration_tests/eunomia/poetry.lock new file mode 100644 index 000000000..ad1c56602 --- /dev/null +++ b/tests/integration_tests/eunomia/poetry.lock @@ -0,0 +1,1126 @@ +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "contourpy" +version = "1.3.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.10" +files = [ + {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, + {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, + {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, + {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, + {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, + {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, + {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, + {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, + {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, + {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, +] + +[package.dependencies] +numpy = ">=1.23" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "fonttools" +version = "4.55.3" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"}, + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5"}, + {file = "fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261"}, + {file = "fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765"}, + {file = "fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f"}, + {file = "fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a"}, + {file = "fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07"}, + {file = "fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe"}, + {file = "fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628"}, + {file = "fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:caf8230f3e10f8f5d7593eb6d252a37caf58c480b19a17e250a63dad63834cf3"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b586ab5b15b6097f2fb71cafa3c98edfd0dba1ad8027229e7b1e204a58b0e09d"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8c2794ded89399cc2169c4d0bf7941247b8d5932b2659e09834adfbb01589aa"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf4fe7c124aa3f4e4c1940880156e13f2f4d98170d35c749e6b4f119a872551e"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:86721fbc389ef5cc1e2f477019e5069e8e4421e8d9576e9c26f840dbb04678de"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:89bdc5d88bdeec1b15af790810e267e8332d92561dce4f0748c2b95c9bdf3926"}, + {file = "fonttools-4.55.3-cp38-cp38-win32.whl", hash = "sha256:bc5dbb4685e51235ef487e4bd501ddfc49be5aede5e40f4cefcccabc6e60fb4b"}, + {file = "fonttools-4.55.3-cp38-cp38-win_amd64.whl", hash = "sha256:cd70de1a52a8ee2d1877b6293af8a2484ac82514f10b1c67c1c5762d38073e56"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bdcc9f04b36c6c20978d3f060e5323a43f6222accc4e7fcbef3f428e216d96af"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3ca99e0d460eff46e033cd3992a969658c3169ffcd533e0a39c63a38beb6831"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f38464daa6cdb7b6aebd14ab06609328fe1e9705bb0fcc7d1e69de7109ee02"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed63959d00b61959b035c7d47f9313c2c1ece090ff63afea702fe86de00dbed4"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5e8d657cd7326eeaba27de2740e847c6b39dde2f8d7cd7cc56f6aad404ddf0bd"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fb594b5a99943042c702c550d5494bdd7577f6ef19b0bc73877c948a63184a32"}, + {file = "fonttools-4.55.3-cp39-cp39-win32.whl", hash = "sha256:dc5294a3d5c84226e3dbba1b6f61d7ad813a8c0238fceea4e09aa04848c3d851"}, + {file = "fonttools-4.55.3-cp39-cp39-win_amd64.whl", hash = "sha256:aedbeb1db64496d098e6be92b2e63b5fac4e53b1b92032dfc6988e1ea9134a4d"}, + {file = "fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977"}, + {file = "fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "kiwisolver" +version = "1.4.8" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.10" +files = [ + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e"}, + {file = "kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751"}, + {file = "kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67"}, + {file = "kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34"}, + {file = "kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8"}, + {file = "kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50"}, + {file = "kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb"}, + {file = "kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2"}, + {file = "kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b"}, + {file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"}, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "matplotlib" +version = "3.9.3" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:41b016e3be4e740b66c79a031a0a6e145728dbc248142e751e8dab4f3188ca1d"}, + {file = "matplotlib-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e0143975fc2a6d7136c97e19c637321288371e8f09cff2564ecd73e865ea0b9"}, + {file = "matplotlib-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f459c8ee2c086455744723628264e43c884be0c7d7b45d84b8cd981310b4815"}, + {file = "matplotlib-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:687df7ceff57b8f070d02b4db66f75566370e7ae182a0782b6d3d21b0d6917dc"}, + {file = "matplotlib-3.9.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:edd14cf733fdc4f6e6fe3f705af97676a7e52859bf0044aa2c84e55be739241c"}, + {file = "matplotlib-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c40c244221a1adbb1256692b1133c6fb89418df27bf759a31a333e7912a4010"}, + {file = "matplotlib-3.9.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:cf2a60daf6cecff6828bc608df00dbc794380e7234d2411c0ec612811f01969d"}, + {file = "matplotlib-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:213d6dc25ce686516208d8a3e91120c6a4fdae4a3e06b8505ced5b716b50cc04"}, + {file = "matplotlib-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c52f48eb75fcc119a4fdb68ba83eb5f71656999420375df7c94cc68e0e14686e"}, + {file = "matplotlib-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c93796b44fa111049b88a24105e947f03c01966b5c0cc782e2ee3887b790a3"}, + {file = "matplotlib-3.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cd1077b9a09b16d8c3c7075a8add5ffbfe6a69156a57e290c800ed4d435bef1d"}, + {file = "matplotlib-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:c96eeeb8c68b662c7747f91a385688d4b449687d29b691eff7068a4602fe6dc4"}, + {file = "matplotlib-3.9.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a361bd5583bf0bcc08841df3c10269617ee2a36b99ac39d455a767da908bbbc"}, + {file = "matplotlib-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e14485bb1b83eeb3d55b6878f9560240981e7bbc7a8d4e1e8c38b9bd6ec8d2de"}, + {file = "matplotlib-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8d279f78844aad213c4935c18f8292a9432d51af2d88bca99072c903948045"}, + {file = "matplotlib-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6c12514329ac0d03128cf1dcceb335f4fbf7c11da98bca68dca8dcb983153a9"}, + {file = "matplotlib-3.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6e9de2b390d253a508dd497e9b5579f3a851f208763ed67fdca5dc0c3ea6849c"}, + {file = "matplotlib-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d796272408f8567ff7eaa00eb2856b3a00524490e47ad505b0b4ca6bb8a7411f"}, + {file = "matplotlib-3.9.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:203d18df84f5288973b2d56de63d4678cc748250026ca9e1ad8f8a0fd8a75d83"}, + {file = "matplotlib-3.9.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b651b0d3642991259109dc0351fc33ad44c624801367bb8307be9bfc35e427ad"}, + {file = "matplotlib-3.9.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66d7b171fecf96940ce069923a08ba3df33ef542de82c2ff4fe8caa8346fa95a"}, + {file = "matplotlib-3.9.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be0ba61f6ff2e6b68e4270fb63b6813c9e7dec3d15fc3a93f47480444fd72f0"}, + {file = "matplotlib-3.9.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d6b2e8856dec3a6db1ae51aec85c82223e834b228c1d3228aede87eee2b34f9"}, + {file = "matplotlib-3.9.3-cp313-cp313-win_amd64.whl", hash = "sha256:90a85a004fefed9e583597478420bf904bb1a065b0b0ee5b9d8d31b04b0f3f70"}, + {file = "matplotlib-3.9.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3119b2f16de7f7b9212ba76d8fe6a0e9f90b27a1e04683cd89833a991682f639"}, + {file = "matplotlib-3.9.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:87ad73763d93add1b6c1f9fcd33af662fd62ed70e620c52fcb79f3ac427cf3a6"}, + {file = "matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:026bdf3137ab6022c866efa4813b6bbeddc2ed4c9e7e02f0e323a7bca380dfa0"}, + {file = "matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760a5e89ebbb172989e8273024a1024b0f084510b9105261b3b00c15e9c9f006"}, + {file = "matplotlib-3.9.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a42b9dc42de2cfe357efa27d9c50c7833fc5ab9b2eb7252ccd5d5f836a84e1e4"}, + {file = "matplotlib-3.9.3-cp313-cp313t-win_amd64.whl", hash = "sha256:e0fcb7da73fbf67b5f4bdaa57d85bb585a4e913d4a10f3e15b32baea56a67f0a"}, + {file = "matplotlib-3.9.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:031b7f5b8e595cc07def77ec5b58464e9bb67dc5760be5d6f26d9da24892481d"}, + {file = "matplotlib-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9fa6e193c14d6944e0685cdb527cb6b38b0e4a518043e7212f214113af7391da"}, + {file = "matplotlib-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e6eefae6effa0c35bbbc18c25ee6e0b1da44d2359c3cd526eb0c9e703cf055d"}, + {file = "matplotlib-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d3e5c7a99bd28afb957e1ae661323b0800d75b419f24d041ed1cc5d844a764"}, + {file = "matplotlib-3.9.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:816a966d5d376bf24c92af8f379e78e67278833e4c7cbc9fa41872eec629a060"}, + {file = "matplotlib-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fb0b37c896172899a4a93d9442ffdc6f870165f59e05ce2e07c6fded1c15749"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5f2a4ea08e6876206d511365b0bc234edc813d90b930be72c3011bbd7898796f"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b081dac96ab19c54fd8558fac17c9d2c9cb5cc4656e7ed3261ddc927ba3e2c5"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a0a63cb8404d1d1f94968ef35738900038137dab8af836b6c21bb6f03d75465"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:896774766fd6be4571a43bc2fcbcb1dcca0807e53cab4a5bf88c4aa861a08e12"}, + {file = "matplotlib-3.9.3.tar.gz", hash = "sha256:cd5dbbc8e25cad5f706845c4d100e2c8b34691b412b93717ce38d8ae803bcfa5"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "numpy" +version = "2.2.1" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5edb4e4caf751c1518e6a26a83501fda79bff41cc59dac48d70e6d65d4ec4440"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa3017c40d513ccac9621a2364f939d39e550c542eb2a894b4c8da92b38896ab"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:61048b4a49b1c93fe13426e04e04fdf5a03f456616f6e98c7576144677598675"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7671dc19c7019103ca44e8d94917eba8534c76133523ca8406822efdd19c9308"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4250888bcb96617e00bfa28ac24850a83c9f3a16db471eca2ee1f1714df0f957"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7746f235c47abc72b102d3bce9977714c2444bdfaea7888d241b4c4bb6a78bf"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:059e6a747ae84fce488c3ee397cee7e5f905fd1bda5fb18c66bc41807ff119b2"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f62aa6ee4eb43b024b0e5a01cf65a0bb078ef8c395e8713c6e8a12a697144528"}, + {file = "numpy-2.2.1-cp310-cp310-win32.whl", hash = "sha256:48fd472630715e1c1c89bf1feab55c29098cb403cc184b4859f9c86d4fcb6a95"}, + {file = "numpy-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:b541032178a718c165a49638d28272b771053f628382d5e9d1c93df23ff58dbf"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40f9e544c1c56ba8f1cf7686a8c9b5bb249e665d40d626a23899ba6d5d9e1484"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9b57eaa3b0cd8db52049ed0330747b0364e899e8a606a624813452b8203d5f7"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bc8a37ad5b22c08e2dbd27df2b3ef7e5c0864235805b1e718a235bcb200cf1cb"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9036d6365d13b6cbe8f27a0eaf73ddcc070cae584e5ff94bb45e3e9d729feab5"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51faf345324db860b515d3f364eaa93d0e0551a88d6218a7d61286554d190d73"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38efc1e56b73cc9b182fe55e56e63b044dd26a72128fd2fbd502f75555d92591"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:31b89fa67a8042e96715c68e071a1200c4e172f93b0fbe01a14c0ff3ff820fc8"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c86e2a209199ead7ee0af65e1d9992d1dce7e1f63c4b9a616500f93820658d0"}, + {file = "numpy-2.2.1-cp311-cp311-win32.whl", hash = "sha256:b34d87e8a3090ea626003f87f9392b3929a7bbf4104a05b6667348b6bd4bf1cd"}, + {file = "numpy-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:360137f8fb1b753c5cde3ac388597ad680eccbbbb3865ab65efea062c4a1fd16"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:694f9e921a0c8f252980e85bce61ebbd07ed2b7d4fa72d0e4246f2f8aa6642ab"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3683a8d166f2692664262fd4900f207791d005fb088d7fdb973cc8d663626faa"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:780077d95eafc2ccc3ced969db22377b3864e5b9a0ea5eb347cc93b3ea900315"}, + {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:55ba24ebe208344aa7a00e4482f65742969a039c2acfcb910bc6fcd776eb4355"}, + {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b1d07b53b78bf84a96898c1bc139ad7f10fda7423f5fd158fd0f47ec5e01ac7"}, + {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5062dc1a4e32a10dc2b8b13cedd58988261416e811c1dc4dbdea4f57eea61b0d"}, + {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fce4f615f8ca31b2e61aa0eb5865a21e14f5629515c9151850aa936c02a1ee51"}, + {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67d4cda6fa6ffa073b08c8372aa5fa767ceb10c9a0587c707505a6d426f4e046"}, + {file = "numpy-2.2.1-cp312-cp312-win32.whl", hash = "sha256:32cb94448be47c500d2c7a95f93e2f21a01f1fd05dd2beea1ccd049bb6001cd2"}, + {file = "numpy-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:ba5511d8f31c033a5fcbda22dd5c813630af98c70b2661f2d2c654ae3cdfcfc8"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1d09e520217618e76396377c81fba6f290d5f926f50c35f3a5f72b01a0da780"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ecc47cd7f6ea0336042be87d9e7da378e5c7e9b3c8ad0f7c966f714fc10d821"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f419290bc8968a46c4933158c91a0012b7a99bb2e465d5ef5293879742f8797e"}, + {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b6c390bfaef8c45a260554888966618328d30e72173697e5cabe6b285fb2348"}, + {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:526fc406ab991a340744aad7e25251dd47a6720a685fa3331e5c59fef5282a59"}, + {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74e6fdeb9a265624ec3a3918430205dff1df7e95a230779746a6af78bc615af"}, + {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:53c09385ff0b72ba79d8715683c1168c12e0b6e84fb0372e97553d1ea91efe51"}, + {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f3eac17d9ec51be534685ba877b6ab5edc3ab7ec95c8f163e5d7b39859524716"}, + {file = "numpy-2.2.1-cp313-cp313-win32.whl", hash = "sha256:9ad014faa93dbb52c80d8f4d3dcf855865c876c9660cb9bd7553843dd03a4b1e"}, + {file = "numpy-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164a829b6aacf79ca47ba4814b130c4020b202522a93d7bff2202bfb33b61c60"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4dfda918a13cc4f81e9118dea249e192ab167a0bb1966272d5503e39234d694e"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:733585f9f4b62e9b3528dd1070ec4f52b8acf64215b60a845fa13ebd73cd0712"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:89b16a18e7bba224ce5114db863e7029803c179979e1af6ad6a6b11f70545008"}, + {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:676f4eebf6b2d430300f1f4f4c2461685f8269f94c89698d832cdf9277f30b84"}, + {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f5cdf9f493b35f7e41e8368e7d7b4bbafaf9660cba53fb21d2cd174ec09631"}, + {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1ad395cf254c4fbb5b2132fee391f361a6e8c1adbd28f2cd8e79308a615fe9d"}, + {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:08ef779aed40dbc52729d6ffe7dd51df85796a702afbf68a4f4e41fafdc8bda5"}, + {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:26c9c4382b19fcfbbed3238a14abf7ff223890ea1936b8890f058e7ba35e8d71"}, + {file = "numpy-2.2.1-cp313-cp313t-win32.whl", hash = "sha256:93cf4e045bae74c90ca833cba583c14b62cb4ba2cba0abd2b141ab52548247e2"}, + {file = "numpy-2.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bff7d8ec20f5f42607599f9994770fa65d76edca264a87b5e4ea5629bce12268"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7ba9cc93a91d86365a5d270dee221fdc04fb68d7478e6bf6af650de78a8339e3"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3d03883435a19794e41f147612a77a8f56d4e52822337844fff3d4040a142964"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4511d9e6071452b944207c8ce46ad2f897307910b402ea5fa975da32e0102800"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5c5cc0cbabe9452038ed984d05ac87910f89370b9242371bd9079cb4af61811e"}, + {file = "numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = {version = ">=1.23.2", markers = "python_version == \"3.11\""} +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.36" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.6.2" +files = [ + {file = "prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305"}, + {file = "prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "pydantic" +version = "2.10.3" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, + {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.1" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, + {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"}, + {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"}, + {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"}, + {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"}, + {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"}, + {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"}, + {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"}, + {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"}, + {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"}, + {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"}, + {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"}, + {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"}, + {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"}, + {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"}, + {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"}, + {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"}, + {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"}, + {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"}, + {file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"}, + {file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"}, + {file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"}, + {file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"}, + {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"}, + {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"}, + {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"}, + {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"}, + {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "3.2.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, + {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "questionary" +version = "2.0.1" +description = "Python library to build pretty command line user prompts ⭐️" +optional = false +python-versions = ">=3.8" +files = [ + {file = "questionary-2.0.1-py3-none-any.whl", hash = "sha256:8ab9a01d0b91b68444dff7f6652c1e754105533f083cbe27597c8110ecc230a2"}, + {file = "questionary-2.0.1.tar.gz", hash = "sha256:bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b"}, +] + +[package.dependencies] +prompt_toolkit = ">=2.0,<=3.0.36" + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +description = "Pretty-print tabular data" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, + {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, +] + +[package.extras] +widechars = ["wcwidth"] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "3.11.11" +content-hash = "d0d7b93123e6eeaa35908ac0aa212def50e106c15d60b13119650462e3072ef3" diff --git a/tests/integration_tests/eunomia/pyproject.toml b/tests/integration_tests/eunomia/pyproject.toml new file mode 100644 index 000000000..bf90b8ece --- /dev/null +++ b/tests/integration_tests/eunomia/pyproject.toml @@ -0,0 +1,26 @@ +[tool.poetry] +name = "eval" +version = "0.1.0" +description = "" +authors = ["leon "] +readme = "README.md" + +[tool.poetry.dependencies] +python = "3.11.11" +pyyaml = "6.0.2" +matplotlib = "3.9.3" +tabulate = "0.9.0" +pandas = "2.2.3" +requests = "2.32.3" +rich = "13.9.4" +questionary = "2.0.1" + +[tool.poetry.group.dev.dependencies] +pydantic = "1.10.17" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +eval = "eval.main:main" \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/example_solution.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/example_solution.json new file mode 100644 index 000000000..1cad6a1ce --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/example_solution.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1540, + "height": 940 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/manifest.yml b/tests/integration_tests/eunomia/scenarios/bpmn_loan/manifest.yml new file mode 100644 index 000000000..97a2e047d --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/manifest.yml @@ -0,0 +1,213 @@ +server_url: "http://127.0.0.1:5100/modules/modeling/module_modeling_llm/feedback_suggestions" +exercise: + course_id: 2 + title: "Process Modelling with BPMN: Obtaining a loan" + type: "modeling" + max_points: 10 + bonus_points: 0 + grading_instructions: "For every correct diagram element, give 1 point. 1. Only give full points if all elements described in the problem statement are present in the submission. 2. If a gateway has a label, ensure the outgoing flows are also labelled. 3. Make sure a start event is present in the student's submission. 4. Make sure an end event is in the student's submissions. 5. Make sure the activities in the diagram are in the same ordered as described in the problem statement. 6. Make sure pools and lanes are labelled. 7. Make sure the submission does not contain elements that are not described in the problem statement. 8. Make sure all elements are connected. 9. Make sure activities are named in the \"Verb Object\"-format where a name consists of a verb followed by the object." + problem_statement: "Two collaboration partners are interacting with each other, the \"Loan Applicant\" and the \"Credit Institute\". The Loan Applicant sends a credit request to the Credit Institute. When a credit request is received, the Loan Provider within the Credit Institute reviews the request. The Loan Provider then checks if standard terms are applicable while the Loan Assessor of the Credit Institute assesses the risk. If the standard terms are applicable, the Loan Provider calculates terms, if they do not apply, the Loan Provider prepares special terms. After that, the Loan Provider prepares a contract. As soon as the Loan Assessor has assessed the risk and the Loan Provider has prepared a contract, the Loan Assessor sends a quote to the Loan Applicant and ends the process afterward. The Loan Applicant, upon receiving the quote then reviews the quote and ends its process afterward as well." + example_solution: "example_solution.json" + meta: {} + +criteria: + - id: "participants" + title: "Representation of Participants" + instructions: + - id: "participants_correct" + grading_scale: "Correct" + instruction_description: "Both 'Loan Applicant' and 'Credit Institute' are represented as pools and correctly labeled." + feedback: "Great! Both participants are correctly modeled." + credits: 1.0 + - id: "participants_incorrect" + grading_scale: "Incorrect" + instruction_description: "Either participants are missing or mislabeled as pools." + feedback: "Ensure that you model both 'Loan Applicant' and 'Credit Institute' as properly labeled pools." + credits: 0.0 + + - id: "events" + title: "Start and End Events" + instructions: + - id: "events_correct" + grading_scale: "Events Correct" + instruction_description: "All necessary start and end events are present for both Loan Applicant and Credit Institute." + feedback: "Good job including proper start and end events." + credits: 1.0 + - id: "events_incorrect" + grading_scale: "Events Missing/Incorrect" + instruction_description: "Start or end events are missing or misplaced." + feedback: "Include correct start/end events as described." + credits: 0.0 + + - id: "activities" + title: "Activities Presence and Correctness" + instructions: + - id: "activities_correct" + grading_scale: "All Activities Correct" + instruction_description: "All required tasks are present and correctly named and no incorrect markers" + feedback: "All tasks match the specification perfectly." + credits: 1.0 + - id: "activities_incorrect" + grading_scale: "Incorrect Activities" + instruction_description: "Required tasks are missing, misnamed, or extraneous tasks are present." + feedback: "Check that all tasks match the problem statement in names and presence." + credits: 0.0 + + - id: "gateway" + title: "Gateway Logic and Conditions" + instructions: + - id: "gateway_correct" + grading_scale: "Gateway Correct" + instruction_description: "The exclusive gateway for standard terms is correct and outgoing flows are labeled." + feedback: "Your gateway and conditions are clearly modeled." + credits: 1.0 + - id: "gateway_incorrect" + grading_scale: "Gateway Incorrect" + instruction_description: "The gateway is not exclusive or outgoing flows are unlabeled." + feedback: "Label the outgoing flows of your exclusive gateway and ensure the correct gateway type." + credits: 0.0 + + - id: "message_flows" + title: "Message Flows Between Participants" + instructions: + - id: "message_flows_correct" + grading_scale: "Message Flows Correct" + instruction_description: "All cross-participant interactions use message flows." + feedback: "Nice use of message flows for inter-participant communication." + credits: 1.0 + - id: "message_flows_incorrect" + grading_scale: "Message Flows Incorrect" + instruction_description: "Sequence flows are used instead of message flows across participants." + feedback: "Use message flows (dashed lines) for interactions between participants." + credits: 0.0 + + - id: "lanes" + title: "Pool and Lane Labeling" + instructions: + - id: "lanes_correct" + grading_scale: "Lanes Correct" + instruction_description: "All pools and lanes are properly labeled." + feedback: "All pools and lanes are clearly and correctly labeled." + credits: 1.0 + - id: "lanes_incorrect" + grading_scale: "Lanes Incorrect" + instruction_description: "Pools or lanes are missing or mislabeled." + feedback: "Ensure that pools and lanes match the names given in the problem statement." + credits: 0.0 + + - id: "naming_format" + title: "Verb-Object Naming Convention" + instructions: + - id: "naming_format_correct" + grading_scale: "Naming Format Correct" + instruction_description: "All tasks use 'Verb Object' naming." + feedback: "Task names follow the correct naming scheme." + credits: 1.0 + - id: "naming_format_incorrect" + grading_scale: "Naming Format Incorrect" + instruction_description: "One or more tasks do not follow the Verb-Object format." + feedback: "Rename tasks to follow the 'Verb Object' convention." + credits: 0.0 + + - id: "sequence" + title: "Correct Sequencing and Parallelism" + instructions: + - id: "sequence_correct" + grading_scale: "Sequence Correct" + instruction_description: "Activities are in the correct logical order and parallel paths are correct." + feedback: "The sequence and parallel structure of the process is correctly represented." + credits: 1.0 + - id: "sequence_incorrect" + grading_scale: "Sequence Incorrect" + instruction_description: "Activities are out of order or parallel paths not modeled correctly." + feedback: "Adjust the order and parallelism of tasks." + credits: 0.0 + + - id: "connectivity" + title: "Full Connectivity" + instructions: + - id: "connectivity_correct" + grading_scale: "Connectivity Correct" + instruction_description: "All flow objects are connected with no dangling flows." + feedback: "All elements are well-connected." + credits: 1.0 + - id: "connectivity_incorrect" + grading_scale: "Connectivity Incorrect" + instruction_description: "Some elements are not connected or flows are dangling." + feedback: "Ensure every element is part of a continuous, connected flow." + credits: 0.0 + + - id: "extras" + title: "No Unnecessary Elements" + instructions: + - id: "no_extras" + grading_scale: "No Extras" + instruction_description: "No extraneous elements beyond those described." + feedback: "No unnecessary elements found. Perfect!" + credits: 1.0 + - id: "extras_present" + grading_scale: "Extras Present" + instruction_description: "Unnecessary elements are present." + feedback: "Remove extraneous elements." + credits: 0.0 + +default_expected: + - "participants_correct" + - "events_correct" + - "activities_correct" + - "gateway_correct" + - "message_flows_correct" + - "lanes_correct" + - "naming_format_correct" + - "sequence_correct" + - "connectivity_correct" + - "no_extras" + +test_case_diffs: + participants_correct: {} + events_correct: + "missing_start_event": "events_incorrect" + "missing_end_event": "events_incorrect" + "wrong_use_of_start_event": "events_incorrect" + "wrong_use_of_end_event": "events_incorrect" + "missing_event": "events_incorrect" + "use_of_wrong_event_type": "events_incorrect" + "missing_description_on_timed_event": "events_incorrect" + activities_correct: + "unlabelled_activity": "activities_incorrect" + "activity_missing_entirely": "activities_incorrect" + "activity_has_been_merged": "activities_incorrect" + "use_of_wrong_activity_type": "activities_incorrect" + "wrongly_named_activity": "activities_incorrect" + "wrong_use_of_the_sequential_multi_instance_marker": "activities_incorrect" + "wrong_use_of_the_parallel_multi_instance_marker": "activities_incorrect" + "wrong_use_of_the_loop_marker": "activities_incorrect" + gateway_correct: + "using_an_event_as_indicator": "gateway_incorrect" + "unlabelled_gateway": "gateway_incorrect" + "no_gateway_logic_description": "gateway_incorrect" + "missing_gateway": "gateway_incorrect" + "use_of_wrong_gateway_type": "gateway_incorrect" + "wrongly_named_gateway": "gateway_incorrect" + "use_of_uncontrolled_flows": "gateway_incorrect" + message_flows_correct: + "sequence_flow_crossing_pool_boundaries": "message_flows_incorrect" + "missing_message_flow": "message_flows_incorrect" + lanes_correct: + "unlabelled_pool": "lanes_incorrect" + "unlabelled_lane": "lanes_incorrect" + "wrongly_named_pools_lanes_and_artifacts": "lanes_incorrect" + naming_format_correct: + "unlabelled_activity": "naming_format_incorrect" + "wrongly_named_activity": "naming_format_incorrect" + "wrong_naming_scheme": "naming_format_incorrect" + sequence_correct: + "wrong_sequence_of_diagram_objects": "sequence_incorrect" + connectivity_correct: + "non_control_flow_as_control_flow": "connectivity_incorrect" + "missing_incoming_connection": "connectivity_incorrect" + "missing_outgoing_connection": "connectivity_incorrect" + "missing_sequence_flow": "connectivity_incorrect" + no_extras: + "excessive_diagram_object": "extras_present" + "excessive_diagram_object2": "extras_present" diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_has_been_merged.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_has_been_merged.json new file mode 100644 index 000000000..e99aefd50 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_has_been_merged.json @@ -0,0 +1,880 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Prepare contract and send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 920, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 960, + "y": 260, + "width": 170, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 170, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 250, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 250, + "y": 270 + }, + { + "x": 250, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "582510c8-87d4-4f6e-982a-e986f8915e39": { + "id": "582510c8-87d4-4f6e-982a-e986f8915e39", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 90, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 90, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_missing_entirely.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_missing_entirely.json new file mode 100644 index 000000000..428ec4066 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/activity_missing_entirely.json @@ -0,0 +1,880 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 760 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 170 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 280, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 550, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 600, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 280, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 320, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 320, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 460, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 220 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 220 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 360, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 300, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 360, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 360, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 360, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 220 + }, + "path": [ + { + "x": 200, + "y": 220 + }, + { + "x": 200, + "y": 110 + }, + { + "x": 0, + "y": 110 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "d893f0a1-7770-4864-b377-ded6e00ab719": { + "id": "d893f0a1-7770-4864-b377-ded6e00ab719", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 340, + "width": 220, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 220, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/excessive_diagram_object.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/excessive_diagram_object.json new file mode 100644 index 000000000..d4481d868 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/excessive_diagram_object.json @@ -0,0 +1,972 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 490, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 560, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "04ed5919-2799-4762-bffe-e74d47d17c22": { + "id": "04ed5919-2799-4762-bffe-e74d47d17c22", + "name": "Consult secondary financial advisor", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 910, + "y": 30, + "width": 180, + "height": 80 + }, + "taskType": "default", + "marker": "none" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 210, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 210, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 530, + "y": 70, + "width": 30, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 30, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 510, + "y": 90, + "width": 690, + "height": 140 + }, + "path": [ + { + "x": 690, + "y": 140 + }, + { + "x": 690, + "y": 70 + }, + { + "x": 0, + "y": 70 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b9f61ab2-b7b4-4b3d-8bd1-796e4c9585b5": { + "id": "b9f61ab2-b7b4-4b3d-8bd1-796e4c9585b5", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 720, + "y": 70, + "width": 190, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 190, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "04ed5919-2799-4762-bffe-e74d47d17c22" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "edad1141-222e-4f89-aa33-54d357c86568": { + "id": "edad1141-222e-4f89-aa33-54d357c86568", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 70, + "width": 220, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 220, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "04ed5919-2799-4762-bffe-e74d47d17c22" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_description_on_timed_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_description_on_timed_event.json new file mode 100644 index 000000000..20935f498 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_description_on_timed_event.json @@ -0,0 +1,971 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1460, + "height": 660 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 750, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 840, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bec2a767-e073-4e84-877d-fb49588d8b52": { + "id": "bec2a767-e073-4e84-877d-fb49588d8b52", + "name": "", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1130, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "timer-catch" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 190, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 460, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 510, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 190, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 220, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 230, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 230, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 230, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 220, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 230, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 220, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 230, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 230, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 370, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 220, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 470, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 470, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 270, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 250, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 270, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 270, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 270, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 790, + "y": 70, + "width": 50, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 50, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 770, + "y": 90, + "width": 440, + "height": 140 + }, + "path": [ + { + "x": 430, + "y": 130 + }, + { + "x": 430, + "y": 84.1171875 + }, + { + "x": 0, + "y": 84.1171875 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "7dc8934e-5a44-429b-a444-2daa0aa81254": { + "id": "7dc8934e-5a44-429b-a444-2daa0aa81254", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 70, + "width": 130, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 130, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "bec2a767-e073-4e84-877d-fb49588d8b52" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "94723ac2-51d2-4e05-aa71-712dc43e7a92": { + "id": "94723ac2-51d2-4e05-aa71-712dc43e7a92", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1170, + "y": 70, + "width": 140, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 140, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bec2a767-e073-4e84-877d-fb49588d8b52" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_end_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_end_event.json new file mode 100644 index 000000000..6ac02f3c3 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_end_event.json @@ -0,0 +1,836 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_event.json new file mode 100644 index 000000000..716595f85 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_event.json @@ -0,0 +1,841 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3d06ff9a-caf4-474d-848f-5ae7ec69324a": { + "id": "3d06ff9a-caf4-474d-848f-5ae7ec69324a", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 800, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 800, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_gateway.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_gateway.json new file mode 100644 index 000000000..845c93bce --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_gateway.json @@ -0,0 +1,881 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "552e7e8b-1082-4824-9e75-3006aa84e321": { + "id": "552e7e8b-1082-4824-9e75-3006aa84e321", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 120, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 120, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a6504b7e-b9d1-49f8-891b-f59895e5cc1a": { + "id": "a6504b7e-b9d1-49f8-891b-f59895e5cc1a", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 290, + "width": 510, + "height": 260 + }, + "path": [ + { + "x": 0, + "y": 260 + }, + { + "x": 510, + "y": 260 + }, + { + "x": 510, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_incoming_connection.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_incoming_connection.json new file mode 100644 index 000000000..bede0f976 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_incoming_connection.json @@ -0,0 +1,894 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_message_flow.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_message_flow.json new file mode 100644 index 000000000..207a5d198 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_message_flow.json @@ -0,0 +1,886 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_outgoing_connection.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_outgoing_connection.json new file mode 100644 index 000000000..32ab3feea --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_outgoing_connection.json @@ -0,0 +1,894 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_sequence_flow.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_sequence_flow.json new file mode 100644 index 000000000..836b209e9 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_sequence_flow.json @@ -0,0 +1,894 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_start_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_start_event.json new file mode 100644 index 000000000..0ad500d99 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/missing_start_event.json @@ -0,0 +1,804 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/no_gateway_logic_description.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/no_gateway_logic_description.json new file mode 100644 index 000000000..4e6d73c5d --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/no_gateway_logic_description.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "complex" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/non_control_flow_as_control_flow.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/non_control_flow_as_control_flow.json new file mode 100644 index 000000000..ca2c5c329 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/non_control_flow_as_control_flow.json @@ -0,0 +1,940 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "9ae6586f-6985-44bd-ad56-cbfed63cdf82": { + "id": "9ae6586f-6985-44bd-ad56-cbfed63cdf82", + "name": "Send credit request", + "type": "BPMNDataObject", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 190, + "y": 20, + "width": 40, + "height": 60 + } + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "05ca56f8-1861-4558-adbd-ccaf9faaed18": { + "id": "05ca56f8-1861-4558-adbd-ccaf9faaed18", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 50, + "width": 90, + "height": 20 + }, + "path": [ + { + "x": 0, + "y": 20 + }, + { + "x": 45, + "y": 20 + }, + { + "x": 45, + "y": 0 + }, + { + "x": 90, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "9ae6586f-6985-44bd-ad56-cbfed63cdf82" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "950169bc-3b9a-405b-9d31-53bd4a21e212": { + "id": "950169bc-3b9a-405b-9d31-53bd4a21e212", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 50, + "width": 750, + "height": 20 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + }, + { + "x": 40, + "y": 20 + }, + { + "x": 750, + "y": 20 + } + ], + "source": { + "direction": "Right", + "element": "9ae6586f-6985-44bd-ad56-cbfed63cdf82" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2ebb6d42-4764-4c38-b018-d6accc1c8eac": { + "id": "2ebb6d42-4764-4c38-b018-d6accc1c8eac", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 80, + "width": 1, + "height": 160 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 160 + } + ], + "source": { + "direction": "Down", + "element": "9ae6586f-6985-44bd-ad56-cbfed63cdf82" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/sequence_flow_crossing_pool_boundaries.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/sequence_flow_crossing_pool_boundaries.json new file mode 100644 index 000000000..fed1c5b80 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/sequence_flow_crossing_pool_boundaries.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 70 + }, + { + "x": 0, + "y": 70 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_activity.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_activity.json new file mode 100644 index 000000000..d60ee682b --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_activity.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_event.json new file mode 100644 index 000000000..2620d9c12 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_event.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_gateway.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_gateway.json new file mode 100644 index 000000000..ce30a461f --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_gateway.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_lane.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_lane.json new file mode 100644 index 000000000..340cd8418 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_lane.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_pool.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_pool.json new file mode 100644 index 000000000..5ac6526a1 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/unlabelled_pool.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 760 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 170 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 280, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 550, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 600, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 280, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 320, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 320, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 460, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 220 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 220 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 360, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 300, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 360, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 360, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 360, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 220 + }, + "path": [ + { + "x": 200, + "y": 220 + }, + { + "x": 200, + "y": 110 + }, + { + "x": 0, + "y": 110 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_uncontrolled_flows.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_uncontrolled_flows.json new file mode 100644 index 000000000..a5c95524b --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_uncontrolled_flows.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_activity_type.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_activity_type.json new file mode 100644 index 000000000..e18866170 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_activity_type.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1070, + "y": 30, + "width": 190, + "height": 80 + }, + "taskType": "send", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1260, + "y": 70, + "width": 50, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 50, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 50, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 50, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_event_type.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_event_type.json new file mode 100644 index 000000000..82b777f09 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_event_type.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "243045a8-45e7-4f64-bed1-c158da013cc5": { + "id": "243045a8-45e7-4f64-bed1-c158da013cc5", + "name": "Quote received", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 950, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ea3c6f67-c24d-458a-9627-de95befe8d24": { + "id": "ea3c6f67-c24d-458a-9627-de95befe8d24", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 970, + "y": 90, + "width": 240, + "height": 140 + }, + "path": [ + { + "x": 230, + "y": 140 + }, + { + "x": 230, + "y": 91.1875 + }, + { + "x": 0, + "y": 91.1875 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "243045a8-45e7-4f64-bed1-c158da013cc5" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9216f044-eec4-4f17-93e4-819ba6d48677": { + "id": "9216f044-eec4-4f17-93e4-819ba6d48677", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 990, + "y": 70, + "width": 90, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 90, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "243045a8-45e7-4f64-bed1-c158da013cc5" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aa0a270f-50d9-425c-b99c-42ad769921af": { + "id": "aa0a270f-50d9-425c-b99c-42ad769921af", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 670, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 670, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "243045a8-45e7-4f64-bed1-c158da013cc5" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_gateway_type.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_gateway_type.json new file mode 100644 index 000000000..908a56ddc --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/use_of_wrong_gateway_type.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/using_an_event_as_indicator.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/using_an_event_as_indicator.json new file mode 100644 index 000000000..72d4b302e --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/using_an_event_as_indicator.json @@ -0,0 +1,939 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "f808242c-55d6-49c1-a4c7-9fb50f065016": { + "id": "f808242c-55d6-49c1-a4c7-9fb50f065016", + "name": "", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1180, + "y": 270, + "width": 40, + "height": 40 + }, + "eventType": "message" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_naming_scheme.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_naming_scheme.json new file mode 100644 index 000000000..9cc311427 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_naming_scheme.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 760 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 170 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Credit request sent", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Quote reviewed", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 280, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 550, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Risk assessed", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 600, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 280, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Request revieved", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 320, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Terms calculated", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Quote sent", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 320, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 320, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Special terms prepared", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 460, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Contract prepared", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 310, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 220 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 220 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 360, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 300, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 340, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 360, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 360, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 360, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 220 + }, + "path": [ + { + "x": 200, + "y": 220 + }, + { + "x": 200, + "y": 110 + }, + { + "x": 0, + "y": 110 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "message" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_sequence_of_diagram_objects.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_sequence_of_diagram_objects.json new file mode 100644 index 000000000..01b27f29e --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_sequence_of_diagram_objects.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_end_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_end_event.json new file mode 100644 index 000000000..c239a0ce3 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_end_event.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_start_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_start_event.json new file mode 100644 index 000000000..78c60d36c --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_start_event.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "6f8dba39-5d62-47d0-870b-37294b903ae7": { + "id": "6f8dba39-5d62-47d0-870b-37294b903ae7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1dd46742-f904-4ab5-8f88-ddece7a929a0": { + "id": "1dd46742-f904-4ab5-8f88-ddece7a929a0", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1290, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f": { + "id": "a6626dca-b9c5-45b5-9309-e5f0a3fb9a4f", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6f8dba39-5d62-47d0-870b-37294b903ae7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "00bbe182-e275-4711-a86a-30438b65b367": { + "id": "00bbe182-e275-4711-a86a-30438b65b367", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 50, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 50, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "1dd46742-f904-4ab5-8f88-ddece7a929a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_loop_marker.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_loop_marker.json new file mode 100644 index 000000000..0a159e808 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_loop_marker.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "loop" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_parallel_multi_instance_marker.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_parallel_multi_instance_marker.json new file mode 100644 index 000000000..dde15058e --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_parallel_multi_instance_marker.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "parallel multi instance" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_sequential_multi_instance_marker.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_sequential_multi_instance_marker.json new file mode 100644 index 000000000..ffe760c5d --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrong_use_of_the_sequential_multi_instance_marker.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "sequential multi instance" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_activity.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_activity.json new file mode 100644 index 000000000..761f98e40 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_activity.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Look outside the window", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_connecting_objects.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_connecting_objects.json new file mode 100644 index 000000000..3482a49e1 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_connecting_objects.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "car", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "bicyle", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_event.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_event.json new file mode 100644 index 000000000..45c8cb49b --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_event.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Lunch plans exchanged", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_gateway.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_gateway.json new file mode 100644 index 000000000..ed6d972eb --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_gateway.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Loan Applicant", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Credit Institute", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Loan Assessor", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Loan Provider", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Weather is sunny?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_pools_lanes_and_artifacts.json b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_pools_lanes_and_artifacts.json new file mode 100644 index 000000000..d79ddb928 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/bpmn_loan/test_cases/wrongly_named_pools_lanes_and_artifacts.json @@ -0,0 +1,926 @@ +{ + "version": "3.0.0", + "type": "BPMN", + "size": { + "width": 1420, + "height": 680 + }, + "interactive": { + "elements": {}, + "relationships": {} + }, + "elements": { + "57be7ebb-099e-47ec-bf5f-2d728437d987": { + "id": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "name": "Car Buyer", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 0, + "width": 1370, + "height": 160 + } + }, + "a3b67a31-a53e-4e20-9859-d1ee473e9e9f": { + "id": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f", + "name": "Send credit request", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 140, + "y": 40, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "909c768f-284b-42d3-9ec8-fbe7675b0f28": { + "id": "909c768f-284b-42d3-9ec8-fbe7675b0f28", + "name": "Quote received", + "type": "BPMNIntermediateEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 980, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "message-catch" + }, + "a5506560-9631-448f-85ee-aa42581ac048": { + "id": "a5506560-9631-448f-85ee-aa42581ac048", + "name": "Review quote", + "type": "BPMNTask", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1080, + "y": 40, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "2dcc3930-cc74-41a9-bd7c-8218a2a14686": { + "id": "2dcc3930-cc74-41a9-bd7c-8218a2a14686", + "name": "", + "type": "BPMNEndEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 1310, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "ead65107-7a97-46df-9225-0770271953b7": { + "id": "ead65107-7a97-46df-9225-0770271953b7", + "name": "", + "type": "BPMNStartEvent", + "owner": "57be7ebb-099e-47ec-bf5f-2d728437d987", + "bounds": { + "x": 60, + "y": 50, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "e975fb67-ccc1-4373-b214-d3e8742930aa": { + "id": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "name": "Car Manufacturer", + "type": "BPMNPool", + "owner": null, + "bounds": { + "x": 0, + "y": 200, + "width": 1370, + "height": 430 + } + }, + "607b811b-ab82-4aad-91c2-6bed096b5cc8": { + "id": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "name": "Assembly Worker", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 470, + "width": 1330, + "height": 160 + } + }, + "a78c7661-7823-4d40-9753-a87a92f3bc93": { + "id": "a78c7661-7823-4d40-9753-a87a92f3bc93", + "name": "Assess risk", + "type": "BPMNTask", + "owner": "607b811b-ab82-4aad-91c2-6bed096b5cc8", + "bounds": { + "x": 530, + "y": 520, + "width": 160, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "bde0718c-a52d-4141-a6d5-d697398a1ab2": { + "id": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "name": "Process Controller", + "type": "BPMNSwimlane", + "owner": "e975fb67-ccc1-4373-b214-d3e8742930aa", + "bounds": { + "x": 40, + "y": 200, + "width": 1330, + "height": 270 + } + }, + "f108cf07-c22c-4284-b9ba-0b4af908c7ad": { + "id": "f108cf07-c22c-4284-b9ba-0b4af908c7ad", + "name": "Review request", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 270, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56": { + "id": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56", + "name": "Credit request received", + "type": "BPMNStartEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 190, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "message" + }, + "ab792872-1b3f-4d7a-afb6-aa01b1d7f785": { + "id": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 450, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "e206ad60-29b0-4bfc-8e5d-08eb28c31942": { + "id": "e206ad60-29b0-4bfc-8e5d-08eb28c31942", + "name": "Standard terms applicable?", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 530, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "531d5776-832d-4ab0-b76c-dba85ec2d8a0": { + "id": "531d5776-832d-4ab0-b76c-dba85ec2d8a0", + "name": "Calculate terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "b31e8aaa-54f2-4a36-8fd0-c374045c836c": { + "id": "b31e8aaa-54f2-4a36-8fd0-c374045c836c", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 790, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "exclusive" + }, + "e409e5b5-ab11-45e7-ba78-4266473ecc17": { + "id": "e409e5b5-ab11-45e7-ba78-4266473ecc17", + "name": "Send quote", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1130, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "acf010ad-0c8c-4a9a-8949-52e17f13e55c": { + "id": "acf010ad-0c8c-4a9a-8949-52e17f13e55c", + "name": "Quote sent", + "type": "BPMNEndEvent", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1310, + "y": 240, + "width": 40, + "height": 40 + }, + "eventType": "default" + }, + "bdfce06b-db3e-45c8-9976-4ef57108218b": { + "id": "bdfce06b-db3e-45c8-9976-4ef57108218b", + "name": "", + "type": "BPMNGateway", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 1050, + "y": 240, + "width": 40, + "height": 40 + }, + "gatewayType": "parallel" + }, + "be966228-7ed4-42c4-ad79-432f459f9feb": { + "id": "be966228-7ed4-42c4-ad79-432f459f9feb", + "name": "Prepare special terms", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 610, + "y": 380, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + }, + "1acbea80-c430-46f2-b7d2-a44a1bc1639c": { + "id": "1acbea80-c430-46f2-b7d2-a44a1bc1639c", + "name": "Prepare contract", + "type": "BPMNTask", + "owner": "bde0718c-a52d-4141-a6d5-d697398a1ab2", + "bounds": { + "x": 870, + "y": 230, + "width": 140, + "height": 60 + }, + "taskType": "default", + "marker": "none" + } + }, + "relationships": { + "e81e5161-51c8-41b8-89f0-66e36da614c1": { + "id": "e81e5161-51c8-41b8-89f0-66e36da614c1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 280, + "y": 70, + "width": 700, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 700, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Left", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "ca2e5065-6ee1-4548-8bcd-502077fa3e73": { + "id": "ca2e5065-6ee1-4548-8bcd-502077fa3e73", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 230, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "target": { + "direction": "Left", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "73825150-a5bb-41ab-b557-cf36fdccb0a4": { + "id": "73825150-a5bb-41ab-b557-cf36fdccb0a4", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 210, + "y": 100, + "width": 1, + "height": 140 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 140 + } + ], + "source": { + "direction": "Down", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "target": { + "direction": "Up", + "element": "6ebb416a-1a47-49cf-9ba1-7ffdcb5dea56" + }, + "isManuallyLayouted": false, + "flowType": "message" + }, + "266c4919-88ad-4c2c-a1e4-c14947f44cde": { + "id": "266c4919-88ad-4c2c-a1e4-c14947f44cde", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 470, + "y": 280, + "width": 60, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 270 + }, + { + "x": 60, + "y": 270 + } + ], + "source": { + "direction": "Down", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b605327e-6a48-4f12-a4d4-97665fb7f230": { + "id": "b605327e-6a48-4f12-a4d4-97665fb7f230", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 410, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "f108cf07-c22c-4284-b9ba-0b4af908c7ad" + }, + "target": { + "direction": "Left", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "33a69e1c-102b-498b-bb3b-c733c17c77bc": { + "id": "33a69e1c-102b-498b-bb3b-c733c17c77bc", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 490, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ab792872-1b3f-4d7a-afb6-aa01b1d7f785" + }, + "target": { + "direction": "Left", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "66fe2424-b0cc-4e50-988c-f0910dd92aa6": { + "id": "66fe2424-b0cc-4e50-988c-f0910dd92aa6", + "name": "yes", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 570, + "y": 220, + "width": 40, + "height": 41 + }, + "path": [ + { + "x": 0, + "y": 40 + }, + { + "x": 40, + "y": 40 + } + ], + "source": { + "direction": "Right", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "8263561f-d70e-4264-8e6e-6d545c9d4d57": { + "id": "8263561f-d70e-4264-8e6e-6d545c9d4d57", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "531d5776-832d-4ab0-b76c-dba85ec2d8a0" + }, + "target": { + "direction": "Left", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17": { + "id": "2c669dc1-ec78-4ce9-af27-6fd58b5f4e17", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1090, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "target": { + "direction": "Left", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "3eae3c61-5acf-4687-95d0-c5e16bb689b2": { + "id": "3eae3c61-5acf-4687-95d0-c5e16bb689b2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 830, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "target": { + "direction": "Left", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c09d469a-0377-47f1-a2b5-6662f2afc0b1": { + "id": "c09d469a-0377-47f1-a2b5-6662f2afc0b1", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1010, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "1acbea80-c430-46f2-b7d2-a44a1bc1639c" + }, + "target": { + "direction": "Left", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "a72d62b3-e113-4b90-bfd9-2480861d1186": { + "id": "a72d62b3-e113-4b90-bfd9-2480861d1186", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1270, + "y": 260, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Left", + "element": "acf010ad-0c8c-4a9a-8949-52e17f13e55c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "70b979b6-32e9-45c7-be45-518507652a30": { + "id": "70b979b6-32e9-45c7-be45-518507652a30", + "name": "no", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 550, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + } + ], + "source": { + "direction": "Down", + "element": "e206ad60-29b0-4bfc-8e5d-08eb28c31942" + }, + "target": { + "direction": "Left", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d": { + "id": "c6ac591f-51fd-4c6e-bdfa-ae74a029d73d", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 750, + "y": 280, + "width": 60, + "height": 130 + }, + "path": [ + { + "x": 0, + "y": 130 + }, + { + "x": 60, + "y": 130 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "be966228-7ed4-42c4-ad79-432f459f9feb" + }, + "target": { + "direction": "Down", + "element": "b31e8aaa-54f2-4a36-8fd0-c374045c836c" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2": { + "id": "60e891d4-0604-45e4-b2c7-b6d6b9f72ba2", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 690, + "y": 280, + "width": 380, + "height": 270 + }, + "path": [ + { + "x": 0, + "y": 270 + }, + { + "x": 380, + "y": 270 + }, + { + "x": 380, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a78c7661-7823-4d40-9753-a87a92f3bc93" + }, + "target": { + "direction": "Down", + "element": "bdfce06b-db3e-45c8-9976-4ef57108218b" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "2bcae199-700f-44b9-93e1-2dacb6061bd8": { + "id": "2bcae199-700f-44b9-93e1-2dacb6061bd8", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1240, + "y": 70, + "width": 70, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "target": { + "direction": "Left", + "element": "2dcc3930-cc74-41a9-bd7c-8218a2a14686" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "b409934a-f4ad-4bcb-a157-4457c97e17fb": { + "id": "b409934a-f4ad-4bcb-a157-4457c97e17fb", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1020, + "y": 70, + "width": 60, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "target": { + "direction": "Left", + "element": "a5506560-9631-448f-85ee-aa42581ac048" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + }, + "aec45998-06bb-4213-a615-8e512c05a855": { + "id": "aec45998-06bb-4213-a615-8e512c05a855", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 1000, + "y": 90, + "width": 200, + "height": 140 + }, + "path": [ + { + "x": 200, + "y": 140 + }, + { + "x": 200, + "y": 88.39453125 + }, + { + "x": 0, + "y": 88.39453125 + }, + { + "x": 0, + "y": 0 + } + ], + "source": { + "direction": "Up", + "element": "e409e5b5-ab11-45e7-ba78-4266473ecc17" + }, + "target": { + "direction": "Down", + "element": "909c768f-284b-42d3-9ec8-fbe7675b0f28" + }, + "isManuallyLayouted": true, + "flowType": "message" + }, + "9365e411-3bd5-4139-b5aa-bb4cb7a70226": { + "id": "9365e411-3bd5-4139-b5aa-bb4cb7a70226", + "name": "", + "type": "BPMNFlow", + "owner": null, + "bounds": { + "x": 100, + "y": 70, + "width": 40, + "height": 1 + }, + "path": [ + { + "x": 0, + "y": 0 + }, + { + "x": 40, + "y": 0 + } + ], + "source": { + "direction": "Right", + "element": "ead65107-7a97-46df-9225-0770271953b7" + }, + "target": { + "direction": "Left", + "element": "a3b67a31-a53e-4e20-9859-d1ee473e9e9f" + }, + "isManuallyLayouted": false, + "flowType": "sequence" + } + }, + "assessments": {} +} \ No newline at end of file diff --git a/tests/integration_tests/eunomia/scenarios/llm_cost.yml b/tests/integration_tests/eunomia/scenarios/llm_cost.yml new file mode 100644 index 000000000..820545e12 --- /dev/null +++ b/tests/integration_tests/eunomia/scenarios/llm_cost.yml @@ -0,0 +1,35 @@ +llm_costs: + gpt-4o: + input_cost_per_million: 2.50 + cached_input_cost_per_million: 1.25 + output_cost_per_million: 10.00 + + gpt-4o-2024-08-06: + input_cost_per_million: 2.50 + cached_input_cost_per_million: 1.25 + output_cost_per_million: 10.00 + + gpt-4o-2024-05-13: + input_cost_per_million: 2.50 + cached_input_cost_per_million: 1.25 + output_cost_per_million: 10.00 + + o1-preview: + input_cost_per_million: 15.00 + cached_input_cost_per_million: 7.50 + output_cost_per_million: 60.00 + + o1-mini: + input_cost_per_million: 3.00 + cached_input_cost_per_million: 1.50 + output_cost_per_million: 12.00 + + o1-mini-2024-09-12: + input_cost_per_million: 3.00 + cached_input_cost_per_million: 1.50 + output_cost_per_million: 12.00 + + o1-preview-2024-09-12: + input_cost_per_million: 15.00 + cached_input_cost_per_million: 7.50 + output_cost_per_million: 60.00 \ No newline at end of file