Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolves #7 #8 #10 additional comment for #4/#11 #12

Merged
merged 24 commits into from
Jun 21, 2024
Merged

Resolves #7 #8 #10 additional comment for #4/#11 #12

merged 24 commits into from
Jun 21, 2024

Conversation

DanielKonsek
Copy link
Collaborator

@DanielKonsek DanielKonsek commented May 16, 2024

Resolves #7

  • changed dot to png conversion to binary to avoid saving locally

Resolves #8

  • added readme file for the project containing generall tool and installation information
  • to do: licensing / contribution

Resolves #10

  • moved duplicate code to helper function
  • changed jscpd treshhold back to 0

Resolves #4 #11

Problem: perform_longest_path_analysis() and perform_max_transition_path_analysis() produce wrong results for certain graphs.

Error analysis:

UML state diagrams are graphs with the following attributes:

  • directed
  • non-weighted
  • potentially cyclic*

The current approach perform_longest_path_analysis() uses:
naive BFS avoiding already-visited transitions

-> does not work for cyclic graphs such as example6.svg

Example G={V,E}
V={A,B,C,D}
E={{A,B},{B,C},{B,D},{C,A}}

will result in trace: {A,B},{B,C},{C,A} instead of {A,B},{B,C},{C,A,},{A,B},{B,C}

Tried solutions:

  • Minimum Spanning Tree (MST) + Shortest Path does not work on directed graphs
  • Repeated Nearest Neighbor Algorithm requires a weighted graph
  • lazy search with cyclic compression and consensus
  • issue: finding a good approximation for set size for very large graphs

Proposed solution: minimum-cost arborescence via Edmonds' algorithm

perform_max_transition_path_analysis() has the same issue.

DanielKonsek and others added 24 commits April 15, 2024 12:55
-improved Full View functionality
-fixed Full View resizing multiple times under certain circumstances
-changed default window creation size to 1280x720 px
-as gpt recommended changed subprocess shell script to start file

~Add option to open state_diagram_graph.png in window/engine?
#6

-removed declared but unused Analysis mode remnants
-removed unused variables and imports
From e066839f6992f87db220ac98d7219dcacd218977 Mon Sep 17 00:00:00 2001
From: Daniel Konsek <[email protected]>
Date: Mon, 15 Apr 2024 11:48:52 +0000
Subject: [PATCH] [check-spelling] Update metadata

check-spelling run (push) for main

Signed-off-by: check-spelling-bot <[email protected]>
on-behalf-of: @check-spelling <[email protected]>
---
 .github/actions/spelling/expect.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt
index e69de29..4bc1aef 100644
--- a/.github/actions/spelling/expect.txt
+++ b/.github/actions/spelling/expect.txt
@@ -0,0 +1 @@
+startfile
--
2.43.2

@@@@da39a3ee5e6b4b0d3255bfef95601890afd80709--1713181732
Resolved:
Check Spelling +startfile
JSCPD +2 code duplication treshold
Black addressed formating
Flake8 f-String formating
Isort Import order/formating
Mypy added Type notations
PYLINT ignored E1101 caused by linter.yml 12
)
messagebox.showinfo(
"Invalid Transition",
f"Cannot transition from {current} to (within) {state}",
Copy link
Member

Choose a reason for hiding this comment

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

What happened to this messagebox output? It seems gone after the refactoring.

)
messagebox.showinfo(
"Invalid Transition",
f"Cannot transition from {current} to anywhere (outside)",
Copy link
Member

Choose a reason for hiding this comment

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

Same as above.

@jvoigtlaender jvoigtlaender merged commit ce1124e into fmidue:main Jun 21, 2024
4 checks passed
Copy link
Member

Choose a reason for hiding this comment

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

This file isn't actually used in the README?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants