From 3808d643093fa4c70ffce92ae60471f265ae4be3 Mon Sep 17 00:00:00 2001 From: Graden <101433010+GramGra07@users.noreply.github.com> Date: Sat, 12 Oct 2024 08:03:30 -0600 Subject: [PATCH] fix sequential and parallel --- .../7.5/executionHistory/executionHistory.bin | Bin 2828319 -> 2828319 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.5/fileHashes/fileHashes.bin | Bin 140933 -> 140933 bytes .gradle/7.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.5/fileHashes/resourceHashesCache.bin | Bin 23461 -> 23733 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .../debug/classes.jar | Bin 142463 -> 144299 bytes .../ParallelRunSM$Builder.class | Bin 5903 -> 6203 bytes .../statemachineftc/ParallelRunSM.class | Bin 4570 -> 4570 bytes .../tests/ParallelRunSMTestCases.class | Bin 10855 -> 12391 bytes .../previous-compilation-data.bin | Bin 4591 -> 4591 bytes .../statemachineftc/ParallelRunSM.java | 16 ++++++--- .../java/tests/ParallelRunSMTestCases.java | 31 ++++++++++++++++++ 14 files changed, 43 insertions(+), 4 deletions(-) diff --git a/.gradle/7.5/executionHistory/executionHistory.bin b/.gradle/7.5/executionHistory/executionHistory.bin index a6d789a8ad029858e2764d0dbdcd30d9324d58e2..62429987f28d35e72eb40277cee923c4ba498335 100644 GIT binary patch delta 796 zcmZY7TS${(7zc3Q>E>J>wt3h*Y`KG4-*;n8r>0E@S=y{MTwY|Q^|^W4JQPm!!jvu) zl&D6&si~o24l5JXPupxI3ks}6v8WIOL4$+_b}$X=vAVJsemCy}&&&INp6;2us2kLe zAiYv*iYrW@Ol79Zc&c1cTw7dNRa0SB#49S!dHg*b`dSWKi|D5b$i?Ef3tiM{a?*g6 zISTQa3u5HN4XG#=Ka!IE_^k@Ha@8G8`lbZ+T*H>4v(&f1Mqf%rOcvi#6_8;&*jwFf zomjTN)EH4O)~yjD{6J1J>G5>b?ZsWzddu=EbFW&vLRo4_^B{hr;D_J}yO6a7j3qtf&GIkjV&4k7{C*F0VZGpZ@>mVfCF{`U*HG) zK>*+a9^ivO5Cnoj2oL}v2nAsv97F&S5QE(y5=ej)$bcL~foKo|_JF-~i-s5*mR_i_ zm<*;eV{w_G)M8Yc&9$Wk%4#D;8U96n1*Z)W>2$|Wbc9K}8KhOfA6>P4$UjgoF!yZn zmh7MF(AakF`{;T%;bd@U7ui9hStYN(hetl7<}-$A?HUn-Xor|Qfq1NmNz-*-m2FzY zb7al7om#+ZonNw*+sJ7Z3WV5SkCL$Y8!V$ElBBB%4DwJ2yN%xJieePru7f^ie0yWm4AUvv74wUE+K{ z75#&1wLAK1wJxlalPb2O=MKCy!oj)?B2u_>VVr-eEBW**IhlZD?5@qs@$B-IU(2eZ z$IqI5q3eJ9^GU==!)_Id+Wsugb4H1=dyeQ2R2l+Xzz?EohEic5S!Dl`-V~ E-&)>6YXATM delta 688 zcmZ|MT}YE*6bEph&CP8&eO>A1a(-<~ecpo5w&hG`7Z&7&TdWU?DbnyFlWFCwAT+|P zFe67E$iNH5gg)HBd_>G)sH8U42ubfKmJ z;xuckD@|2rDlg@EP3}{tYcE_pYw}ikP4#=~>wMw%UEmMJ?uGDC*%F(uka4N%S+%Sw zB{F#<;EM#F=X`ugf^fw~cEe~U9|v!WNC%hwGk#Io4CPL#F-4V93tXpXO|wAva@SSRf(ZK2`j<1m(|N`hLaavyL< zWNMf_M0zxZ57Rs~No5T_b^EQG$<>cXzpbo4$o)0n(ppN82#HZNk{~IHK{6yq3bX~q zA|;AL@rXkSNQJhdZ72~XAvMyVWTZvgQ3}$bRFsC&Q3lFHdSpOGv;$?KY?Q-VOX*-B z^Z$`Y{i$P6+)qnbXM`M-FhRuo)T~gTA~AO-M;l!*y)bp{wO;<|@I-`_Ez>N*MpAh@ zNpQUtg#5c!=2}>LH?Lh&gWSZ6dfA12I8C~A8NkSK6WyLKS$vDD&@q&;(O>^ zr8~u6v6)__W;med=U{G)x}nj)bF%);cn1{VSf}Zlzn|#eoPKt)83S)2`X9YxU+&3c zJoozoy5SEpk2vbzpDyY|#UK-5XFNBXCuJo>OV<{lN+1xt1ticcnI&-~IYxVL z>U6U(W4YKOIjD|}U=0is)|fgr9@dnfZmG&7zykEJ&2)beCMo%{Qhtw>wu{TVC+~c= z`TY<1H06kOm?&+C4X)R zTM4n_$77(%dLY)>i>XE9AOCCK*6DE}Y^n-eedq1LS|Ut80#yQm;4L75X35@cjs}@O z$2vDo{s(l}UgF=wbco{vu3L@+ZujdJJTa)+!pU#tG6Wc2zf}A9*=h<@>C4T&@)E29QA&KcA`H@{UO}5>v(2H)RhJtQy2~7yT1_y!(9}rV1a`)_nbcw~P)O hubfd9B=Z(i#ijc~93oqNvaWrXR@jw%)ng+_2>{%{jOhRX delta 63 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 Wm`cB)4?mb4np0?`#g8hGBKv=tCY0&` delta 6874 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 V$j>$|f2dlna!u9*KjU4X@NZ823%&pV diff --git a/build/intermediates/javac/debug/classes/org/gentrifiedApps/statemachineftc/ParallelRunSM.class b/build/intermediates/javac/debug/classes/org/gentrifiedApps/statemachineftc/ParallelRunSM.class index c6f461a824da81aa05f1c12314a5c4bcd2aa2ee2..a0554d692a341a9baefb1cce6a2e04ffeb7338c3 100644 GIT binary patch delta 186 zcmcbmd`o$QA}^!Z>~x@&GZ-WpW-=Ht e%mNC}1{ya9Xv|!O4u<)Y1qGWJxhGE%bOQh#D<(?- delta 182 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 diff --git a/src/main/java/org/gentrifiedApps/statemachineftc/ParallelRunSM.java b/src/main/java/org/gentrifiedApps/statemachineftc/ParallelRunSM.java index 66e168c..fcd993c 100644 --- a/src/main/java/org/gentrifiedApps/statemachineftc/ParallelRunSM.java +++ b/src/main/java/org/gentrifiedApps/statemachineftc/ParallelRunSM.java @@ -1,9 +1,5 @@ package org.gentrifiedApps.statemachineftc; -import android.util.Pair; - -import org.junit.jupiter.api.DisplayNameGenerator; - import java.util.AbstractMap; import java.util.ArrayList; import java.util.HashMap; @@ -83,6 +79,11 @@ public ParallelRunSM.Builder stopRunning(T state, Supplier exitComma public ParallelRunSM build(Boolean useTimeout, Integer timeout) { this.timeout = new AbstractMap.SimpleEntry<>(useTimeout, timeout); + + if (timeout < 0) { + throw new IllegalArgumentException("Timeout must be a positive integer"); + } + if (states == null || states.isEmpty()) { throw new IllegalArgumentException("States cannot be null or empty"); } @@ -91,6 +92,13 @@ public ParallelRunSM build(Boolean useTimeout, Integer timeout) { throw new IllegalArgumentException("States cannot have duplicates"); } + if (onEnterCommands.isEmpty()) { + throw new IllegalArgumentException("States must have corresponding onEnter commands"); + } + if (onEnterCommands.size() != states.size()) { + throw new IllegalArgumentException("Not all states have corresponding onEnter commands"); + } + if (onEnterCommands.get(states.get(0)) == null) { throw new IllegalArgumentException("Initial state must have a corresponding onEnter command"); } diff --git a/src/main/java/tests/ParallelRunSMTestCases.java b/src/main/java/tests/ParallelRunSMTestCases.java index 9f77100..e131e1a 100644 --- a/src/main/java/tests/ParallelRunSMTestCases.java +++ b/src/main/java/tests/ParallelRunSMTestCases.java @@ -278,4 +278,35 @@ public void testStopRunningTiming2() { assertFalse(map[2]); assertFalse(stateMachine.isRunning()); } + // mismatch states and onenters + @Test + public void testMismatchStatesAndOnEnters() { + ParallelRunSM.Builder builder = new ParallelRunSM.Builder<>(); + builder.state(States.STATE1) + .onEnter(States.STATE1, () -> System.out.println("Entering STATE1")) + .state(States.STATE2) + .stopRunning(States.STOP,()->true); + try { + ParallelRunSM stateMachine = builder.build(false,100); + } catch (IllegalArgumentException e) { + assertEquals("Not all states have corresponding onEnter commands", e.getMessage()); + } + } + // test a negative timeout + @Test + public void testNegativeTimeout() { + ParallelRunSM.Builder builder = new ParallelRunSM.Builder<>(); + builder.state(States.STATE1) + .onEnter(States.STATE1, () -> System.out.println("Entering STATE1")) + .state(States.STATE2) + .onEnter(States.STATE2, () -> System.out.println("Entering STATE2")) + .state(States.STATE3) + .onEnter(States.STATE3, () -> System.out.println("Entering STATE3")) + .stopRunning(States.STOP,()->true); + try { + ParallelRunSM stateMachine = builder.build(false,-100); + } catch (IllegalArgumentException e) { + assertEquals("Timeout must be a positive integer", e.getMessage()); + } + } }