pione 0.4.2 → 0.5.0.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.travis.yml +1 -1
- data/History.txt +6 -0
- data/example/ActionError/ActionError.action.md +11 -0
- data/example/ActionError/ActionError.pione +6 -3
- data/example/ActionError/ActionError.pnml +86 -0
- data/example/ActionError/Package.pione +2 -0
- data/example/ActionError/pione-package.json +5 -1
- data/example/CTFCorrection/CTFCorrection.action.md +46 -0
- data/example/CTFCorrection/CTFCorrection.pione +19 -41
- data/example/CTFCorrection/CTFCorrection.pnml +839 -0
- data/example/CTFCorrection/Package.pione +1 -0
- data/example/CTFCorrection/Params.pione +21 -0
- data/example/CTFCorrection/pione-package.json +20 -0
- data/example/ChildPackage/ChildPackage.pione +8 -0
- data/example/ChildPackage/pione-package.json +20 -0
- data/example/CountChar/CountChar.pione +31 -0
- data/example/CountChar/CountChar.pnml +239 -0
- data/example/CountChar/Main.pione +6 -26
- data/example/CountChar/Main.pnml +32 -100
- data/example/CountChar/Package.pione +1 -0
- data/example/CountChar/pione-package.json +3 -1
- data/example/DeferredChoice/DeferredChoice.action.md +46 -0
- data/example/DeferredChoice/DeferredChoice.pione +2 -7
- data/example/DeferredChoice/DeferredChoice.pnml +371 -0
- data/example/DeferredChoice/Package.pione +4 -0
- data/example/DeferredChoice/pione-package.json +7 -3
- data/example/DeferredChoiceWithPage/DeferredChoiceWithPage.action.md +34 -0
- data/example/DeferredChoiceWithPage/DefferredChoiceWithPage.pnml +371 -0
- data/example/DeferredChoiceWithPage/Package.pione +2 -0
- data/example/FeatureExample/FeatureExample.action.md +7 -0
- data/example/FeatureExample/FeatureExample.pione +7 -4
- data/example/FeatureExample/FeatureExample.pnml +86 -0
- data/example/FeatureExample/Package.pione +1 -0
- data/example/FeatureExample/pione-package.json +4 -0
- data/example/Fib/Fib.action.md +33 -0
- data/example/Fib/Fib.pnml +208 -0
- data/example/Fib/FibN.pnml +807 -0
- data/example/Fib/Package.pione +6 -0
- data/example/HelloWorld/HelloWorld.action.md +7 -0
- data/example/HelloWorld/HelloWorld.pione +6 -2
- data/example/HelloWorld/HelloWorld.pnml +86 -0
- data/example/HelloWorld/Package.pione +2 -0
- data/example/HelloWorld/pione-package.json +5 -1
- data/example/Interaction/Interaction.action.md +21 -0
- data/example/Interaction/Interaction.pnml +89 -0
- data/example/Interaction/Package.pione +2 -0
- data/example/LoopByTouch/LoopByTouch.pione +32 -12
- data/example/LoopByTouch/LoopByTouch.pnml +575 -0
- data/example/LoopByTouch/Package.pione +3 -0
- data/example/LoopByTouch/PairLoop.pione +6 -7
- data/example/LoopByTouch/PairLoop.pnml +188 -0
- data/example/LoopByTouch/SingleLoop.pione +6 -0
- data/example/LoopByTouch/SingleLoop.pnml +86 -0
- data/example/LoopByTouch/TripletLoop.pione +12 -13
- data/example/LoopByTouch/TripletLoop.pnml +239 -0
- data/example/LoopByTouch/pione-package.json +7 -3
- data/example/LucasNumber/LucasNumber.action.md +25 -0
- data/example/LucasNumber/LucasNumber.pnml +244 -0
- data/example/LucasNumber/LucasNumberN.pnml +1719 -0
- data/example/LucasNumber/Package.pione +2 -0
- data/example/MakePair/MakePair.pione +8 -10
- data/example/MakePair/MakePair.pnml +1141 -0
- data/example/MakePair/Package.pione +2 -0
- data/example/MakePair/pione-package.json +7 -3
- data/example/MakePair/scenario/case1/pione-scenario.json +30 -30
- data/example/MakePair/scenario/case2/pione-scenario.json +10 -10
- data/example/MakePair/scenario/case3/pione-scenario.json +28 -28
- data/example/OddSelector/OddSelector.pione +8 -8
- data/example/OddSelector/OddSelector.pnml +401 -0
- data/example/OddSelector/Package.pione +2 -0
- data/example/OddSelector/pione-package.json +4 -0
- data/example/OddSelector/scenario/pione-scenario.json +8 -8
- data/example/ParentPackage/ParentPackage.pione +13 -0
- data/example/ParentPackage/pione-package.json +18 -0
- data/example/PegasusWMS/Merge/Package.pione +2 -0
- data/example/PegasusWMS/Merge/PegasusWMSMerge.action.md +17 -0
- data/example/PegasusWMS/Merge/{Merge.pione → PegasusWMSMerge.pione} +9 -10
- data/example/PegasusWMS/Merge/PegasusWMSMerge.pnml +217 -0
- data/example/PegasusWMS/Merge/pione-package.json +6 -2
- data/example/PegasusWMS/Pipeline/Package.pione +2 -0
- data/example/PegasusWMS/Pipeline/PegasusWMSPipeline.action.md +17 -0
- data/example/PegasusWMS/Pipeline/{Pipeline.pione → PegasusWMSPipeline.pione} +7 -9
- data/example/PegasusWMS/Pipeline/PegasusWMSPipeline.pnml +137 -0
- data/example/PegasusWMS/Pipeline/pione-package.json +6 -2
- data/example/PegasusWMS/Split/Package.pione +2 -0
- data/example/PegasusWMS/Split/PegasusWMSSplit.action.md +19 -0
- data/example/PegasusWMS/Split/{Split.pione → PegasusWMSSplit.pione} +9 -10
- data/example/PegasusWMS/Split/PegasusWMSSplit.pnml +293 -0
- data/example/PegasusWMS/Split/pione-package.json +6 -2
- data/example/ScoreAggregation/Package.pione +2 -0
- data/example/ScoreAggregation/ScoreAggregation.action.md +56 -0
- data/example/ScoreAggregation/ScoreAggregation.pione +37 -76
- data/example/ScoreAggregation/ScoreAggregation.pnml +1221 -0
- data/example/ScoreAggregation/pione-package.json +6 -2
- data/example/ScoreAggregation/scenario/case1/pione-scenario.json +21 -21
- data/example/SelectRuleByParam/Package.pione +2 -0
- data/example/SelectRuleByParam/SelectRuleByParam.action.md +19 -0
- data/example/SelectRuleByParam/SelectRuleByParam.pnml +388 -0
- data/example/SequentialParameter/Package.pione +2 -0
- data/example/SequentialParameter/SequentialParameter.pione +9 -3
- data/example/SequentialParameter/SequentialParameter.pnml +140 -0
- data/example/SequentialParameter/pione-package.json +19 -0
- data/example/SerialProcessing/A.pione +25 -0
- data/example/SerialProcessing/A.pnml +395 -0
- data/example/SerialProcessing/B.pione +25 -0
- data/example/SerialProcessing/B.pnml +395 -0
- data/example/SerialProcessing/Package.pione +2 -0
- data/example/SerialProcessing/SerialProcessing.pione +9 -60
- data/example/SerialProcessing/SerialProcessing.pnml +160 -0
- data/example/SerialProcessing/pione-package.json +7 -1
- data/example/SieveOfEratosthenes/CreateUndeterminedNumbers.pnml +157 -0
- data/example/SieveOfEratosthenes/Package.pione +4 -0
- data/example/SieveOfEratosthenes/Sieve.pnml +1493 -0
- data/example/SieveOfEratosthenes/SieveOfEratosthenes.pnml +174 -0
- data/example/SingleParticlesWithRef/Create3dinfo.pnml +342 -0
- data/example/SingleParticlesWithRef/Package.pione +42 -0
- data/example/SingleParticlesWithRef/SingleParticlesWithRef.action.md +34 -0
- data/example/SingleParticlesWithRef/SingleParticlesWithRef.pnml +404 -0
- data/example/SingleParticlesWithRef/{Makefile → misc/Makefile} +0 -0
- data/example/SingleParticlesWithRef/{SingleParticlesWithRef.Display2.pione → misc/SingleParticlesWithRef.Display2.pione} +0 -0
- data/example/SingleParticlesWithRef/{SingleParticlesWithRef.Makefile → misc/SingleParticlesWithRef.Makefile} +0 -0
- data/example/SingleParticlesWithRef/{SingleParticlesWithRefFull.pione → misc/SingleParticlesWithRefFull.pione} +0 -0
- data/example/Sum/CalcEachLine.pione +30 -0
- data/example/Sum/CalcEachLine.pnml +327 -0
- data/example/Sum/Package.pione +2 -0
- data/example/Sum/Sum.action.md +35 -0
- data/example/Sum/Sum.pione +9 -35
- data/example/Sum/Sum.pnml +191 -0
- data/example/Sum/pione-package.json +5 -0
- data/example/Touch/Package.pione +2 -0
- data/example/Touch/Touch.pione +8 -2
- data/example/Touch/Touch.pnml +89 -0
- data/example/Touch/pione-package.json +4 -0
- data/example/WorkflowPatterns/01_Sequence/Package.pione +2 -0
- data/example/WorkflowPatterns/01_Sequence/Sequence.pione +9 -9
- data/example/WorkflowPatterns/01_Sequence/Sequence.pnml +191 -0
- data/example/WorkflowPatterns/01_Sequence/pione-package.json +19 -0
- data/example/WorkflowPatterns/02_PrallelSplit/Package.pione +2 -0
- data/example/WorkflowPatterns/02_PrallelSplit/ParallelSplit.pione +12 -12
- data/example/WorkflowPatterns/02_PrallelSplit/ParallelSplit.pnml +265 -0
- data/example/WorkflowPatterns/02_PrallelSplit/pione-package.json +19 -0
- data/example/WorkflowPatterns/03_Synchronization/Package.pione +2 -0
- data/example/WorkflowPatterns/03_Synchronization/Synchronization.pione +12 -13
- data/example/WorkflowPatterns/03_Synchronization/Synchronization.pnml +273 -0
- data/example/WorkflowPatterns/03_Synchronization/pione-package.json +19 -0
- data/example/WorkflowPatterns/04_ExclusiveChoice/ExclusiveChoice.pione +15 -22
- data/example/WorkflowPatterns/04_ExclusiveChoice/ExclusiveChoice.pnml +533 -0
- data/example/WorkflowPatterns/04_ExclusiveChoice/Package.pione +4 -0
- data/example/WorkflowPatterns/04_ExclusiveChoice/pione-package.json +19 -0
- data/example/WorkflowPatterns/05_SimpleMerge/Package.pione +4 -0
- data/example/WorkflowPatterns/05_SimpleMerge/SimpleMerge.pione +10 -18
- data/example/WorkflowPatterns/05_SimpleMerge/SimpleMerge.pnml +431 -0
- data/example/WorkflowPatterns/05_SimpleMerge/pione-package.json +19 -0
- data/example/WorkflowPatterns/06_MultiChoice/MultiChoice.pione +20 -28
- data/example/WorkflowPatterns/06_MultiChoice/MultiChoice.pnml +797 -0
- data/example/WorkflowPatterns/06_MultiChoice/Package.pione +5 -0
- data/example/WorkflowPatterns/06_MultiChoice/pione-package.json +19 -0
- data/example/WorkflowPatterns/07_StructuredSynchronizingMerge/Package.pione +5 -0
- data/example/WorkflowPatterns/07_StructuredSynchronizingMerge/StructuredSynchronizingMerge.pnml +668 -0
- data/example/WorkflowPatterns/08_MultiMerge/MultiMerge.pione +9 -20
- data/example/WorkflowPatterns/08_MultiMerge/MultiMerge.pnml +551 -0
- data/example/WorkflowPatterns/08_MultiMerge/Package.pione +4 -0
- data/example/WorkflowPatterns/08_MultiMerge/pione-package.json +19 -0
- data/example/WorkflowPatterns/11_ImplicitTermination/ImplicitTermination.pione +9 -17
- data/example/WorkflowPatterns/11_ImplicitTermination/ImplicitTermination.pnml +188 -0
- data/example/WorkflowPatterns/11_ImplicitTermination/Package.pione +2 -0
- data/example/WorkflowPatterns/11_ImplicitTermination/pione-package.json +19 -0
- data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/MultipleInstancesWithoutSynchronization.pione +11 -11
- data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/MultipleInstancesWithoutSynchronization.pnml +319 -0
- data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/Package.pione +4 -0
- data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/pione-package.json +19 -0
- data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/MultipleInstancesWithDesignTimeKnowledge.pione +11 -11
- data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/MultipleInstancesWithDesignTimeKnowledge.pnml +319 -0
- data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/Package.pione +2 -0
- data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/pione-package.json +19 -0
- data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/MultipleInstancesWithRunTimeKnowledge.pione +14 -17
- data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/MultipleInstancesWithRunTimeKnowledge.pnml +355 -0
- data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/Package.pione +4 -0
- data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/pione-package.json +19 -0
- data/example/WorkflowPatterns/33_GeneralizedANDJoin/GeneralizedANDJoin.pione +9 -10
- data/example/WorkflowPatterns/33_GeneralizedANDJoin/GeneralizedANDJoin.pnml +409 -0
- data/example/WorkflowPatterns/33_GeneralizedANDJoin/Package.pione +2 -0
- data/example/WorkflowPatterns/33_GeneralizedANDJoin/pione-package.json +19 -0
- data/example/WorkflowPatterns/37_LocalSynchronizingMerge/A.pione +34 -0
- data/example/WorkflowPatterns/37_LocalSynchronizingMerge/A.pnml +570 -0
- data/example/WorkflowPatterns/37_LocalSynchronizingMerge/LocalSynchronizingMerge.pione +36 -70
- data/example/WorkflowPatterns/37_LocalSynchronizingMerge/LocalSynchronizingMerge.pnml +854 -0
- data/example/WorkflowPatterns/37_LocalSynchronizingMerge/Package.pione +5 -0
- data/example/WorkflowPatterns/37_LocalSynchronizingMerge/pione-package.json +20 -0
- data/example/WorkflowPatterns/38_GeneralSynchronizingMerge/GeneralSynchronizingMerge.pnml +1003 -0
- data/example/WorkflowPatterns/38_GeneralSynchronizingMerge/Package.pione +6 -0
- data/example/WorkflowPatterns/41_ThreadMerge/A.pnml +429 -0
- data/example/WorkflowPatterns/41_ThreadMerge/A1.pnml +141 -0
- data/example/WorkflowPatterns/41_ThreadMerge/Package.pione +2 -0
- data/example/WorkflowPatterns/41_ThreadMerge/ThreadMerge.pnml +205 -0
- data/example/WorkflowPatterns/42_ThreadSplit/Package.pione +2 -0
- data/example/WorkflowPatterns/42_ThreadSplit/ThreadSplit.pnml +217 -0
- data/lib/pione/agent/job-manager.rb +4 -3
- data/lib/pione/agent/task-worker.rb +2 -7
- data/lib/pione/command.rb +1 -0
- data/lib/pione/command/basic-command.rb +3 -1
- data/lib/pione/command/command-exception.rb +14 -0
- data/lib/pione/command/pione-action-exec.rb +4 -1
- data/lib/pione/command/pione-clean.rb +13 -6
- data/lib/pione/command/pione-client.rb +5 -5
- data/lib/pione/command/pione-compile.rb +1 -1
- data/lib/pione/command/pione-log-format.rb +1 -1
- data/lib/pione/command/pione-package-add.rb +1 -1
- data/lib/pione/command/pione-package-build.rb +87 -32
- data/lib/pione/command/pione-package-remove.rb +117 -0
- data/lib/pione/command/pione-package.rb +1 -0
- data/lib/pione/command/spawner.rb +12 -3
- data/lib/pione/lang/boolean.rb +1 -1
- data/lib/pione/lang/common-parser.rb +5 -3
- data/lib/pione/lang/context-parser.rb +8 -2
- data/lib/pione/lang/context-transformer.rb +13 -3
- data/lib/pione/lang/context.rb +20 -2
- data/lib/pione/lang/data-expr.rb +1 -1
- data/lib/pione/lang/declaration-parser.rb +18 -4
- data/lib/pione/lang/declaration-transformer.rb +1 -1
- data/lib/pione/lang/declaration.rb +5 -3
- data/lib/pione/lang/definition.rb +1 -0
- data/lib/pione/lang/environment.rb +37 -2
- data/lib/pione/lang/expr.rb +10 -12
- data/lib/pione/lang/feature-expr.rb +1 -1
- data/lib/pione/lang/float.rb +1 -1
- data/lib/pione/lang/integer.rb +1 -1
- data/lib/pione/lang/keyed-sequence.rb +5 -5
- data/lib/pione/lang/lang-exception.rb +9 -5
- data/lib/pione/lang/literal-parser.rb +2 -2
- data/lib/pione/lang/literal-transformer.rb +3 -0
- data/lib/pione/lang/message.rb +3 -3
- data/lib/pione/lang/ordinal-sequence.rb +1 -1
- data/lib/pione/lang/package-expr.rb +1 -1
- data/lib/pione/lang/parameters.rb +1 -1
- data/lib/pione/lang/pione-method.rb +16 -16
- data/lib/pione/lang/rule-expr.rb +6 -1
- data/lib/pione/lang/sequence.rb +8 -3
- data/lib/pione/lang/string.rb +1 -1
- data/lib/pione/lang/ticket-expr.rb +1 -1
- data/lib/pione/lang/type.rb +17 -8
- data/lib/pione/lang/variable.rb +4 -1
- data/lib/pione/literate-action.rb +1 -2
- data/lib/pione/literate-action/document.rb +1 -1
- data/lib/pione/literate-action/handler.rb +22 -7
- data/lib/pione/literate-action/{parser.rb → markdown-parser.rb} +2 -1
- data/lib/pione/log/domain-log.rb +1 -1
- data/lib/pione/model/task-worker-broker-model.rb +1 -1
- data/lib/pione/package/package-database.rb +16 -2
- data/lib/pione/package/package-exception.rb +1 -1
- data/lib/pione/package/package-handler.rb +11 -7
- data/lib/pione/package/package-info.rb +13 -7
- data/lib/pione/package/package-scanner.rb +1 -1
- data/lib/pione/package/scenario-info.rb +2 -2
- data/lib/pione/pnml.rb +6 -0
- data/lib/pione/pnml/compiler.rb +329 -95
- data/lib/pione/pnml/declaration-extractor.rb +90 -0
- data/lib/pione/pnml/input-merge-complement.rb +17 -11
- data/lib/pione/pnml/input-parallelization-complement.rb +10 -6
- data/lib/pione/pnml/input-reduction.rb +5 -5
- data/lib/pione/pnml/invalid-arc-elimination.rb +2 -2
- data/lib/pione/pnml/io-expansion.rb +9 -5
- data/lib/pione/pnml/isolated-element-elimination.rb +2 -2
- data/lib/pione/pnml/label-extractor.rb +258 -0
- data/lib/pione/pnml/net-rewriter.rb +6 -4
- data/lib/pione/pnml/output-decomposition-complement.rb +12 -7
- data/lib/pione/pnml/output-reduction.rb +11 -5
- data/lib/pione/pnml/output-synchronization-complement.rb +11 -7
- data/lib/pione/pnml/parser.rb +106 -0
- data/lib/pione/pnml/pione-model.rb +685 -230
- data/lib/pione/pnml/pnml-model.rb +73 -41
- data/lib/pione/pnml/ticket-instantiation.rb +42 -0
- data/lib/pione/rule-engine/action-handler.rb +212 -135
- data/lib/pione/rule-engine/basic-handler.rb +29 -3
- data/lib/pione/rule-engine/engine-exception.rb +10 -6
- data/lib/pione/system/status.rb +12 -6
- data/lib/pione/version.rb +1 -1
- data/lib/rootage/help.md.erb +45 -0
- data/lib/rootage/help.rb +1 -0
- data/lib/rootage/scenario.rb +20 -2
- data/misc/pione-completion.bash +15 -5
- data/misc/pione-completion.zsh +16 -6
- data/test/command/spec_pione-client.rb +60 -60
- data/test/lang/data/context-parser.yml +12 -1
- data/test/lang/spec_pione-method.rb +7 -6
- data/test/literate-action/spec_handler.rb +19 -13
- data/test/literate-action/{spec_parser.rb → spec_markdown-parser.rb} +3 -3
- data/test/log/spec_message-log-receiver.rb +1 -1
- data/test/package/spec_package-info.rb +1 -1
- data/test/pnml/spec_input-merge-complement.rb +4 -2
- data/test/pnml/spec_input-parallelization-complement.rb +4 -2
- data/test/pnml/spec_input-reduction.rb +8 -4
- data/test/pnml/spec_invalid-arc-elimination.rb +2 -1
- data/test/pnml/spec_io-expansion.rb +4 -2
- data/test/pnml/spec_isolated-element-elimination.rb +2 -1
- data/test/pnml/spec_label-extractor.rb +100 -0
- data/test/pnml/spec_output-decomposition-complement.rb +4 -2
- data/test/pnml/spec_output-reduction.rb +8 -4
- data/test/pnml/spec_output-synchronization-complement.rb +4 -2
- data/test/pnml/spec_pione-element.rb +116 -37
- data/test/pnml/spec_pnml-element.rb +32 -8
- data/test/rule-engine/spec_action-handler.rb +12 -20
- metadata +159 -16
- data/example/CTFCorrection/package.yml +0 -1
- data/example/DeferredChoice/bin/ui.xml +0 -28
@@ -127,7 +127,18 @@ structural_context:
|
|
127
127
|
# comment
|
128
128
|
rule Test2
|
129
129
|
|
130
|
-
|
130
|
+
flow_rule_condition_context:
|
131
|
+
valid:
|
132
|
+
- | # parameters without default values
|
133
|
+
param $X
|
134
|
+
basic param $Y
|
135
|
+
advanced param $Z
|
136
|
+
- | # parameters with default values
|
137
|
+
param $X := 1
|
138
|
+
basic param $Y := 2
|
139
|
+
advanced param $Z := 3
|
140
|
+
|
141
|
+
action_rule_condition_context:
|
131
142
|
valid:
|
132
143
|
- | # parameters without default values
|
133
144
|
param $X
|
@@ -35,12 +35,13 @@ describe "Pione::Lang::PioneMethod" do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should validate inputs" do
|
38
|
-
|
39
|
-
@
|
40
|
-
@method_2.validate_inputs(@int_1, [
|
41
|
-
@method_2.validate_inputs(@int_1, [@
|
42
|
-
@method_2.validate_inputs(@int_1, [@int_2
|
43
|
-
@
|
38
|
+
env = Lang::Environment.new
|
39
|
+
@method_1.validate_inputs(env, @int_1, []).should.be.false
|
40
|
+
@method_2.validate_inputs(env, @int_1, []).should.be.false
|
41
|
+
@method_2.validate_inputs(env, @int_1, [@str_1]).should.be.false
|
42
|
+
@method_2.validate_inputs(env, @int_1, [@int_2]).should.be.false
|
43
|
+
@method_2.validate_inputs(env, @int_1, [@int_2, @int_3, @str_1]).should.be.false
|
44
|
+
@method_3.validate_inputs(env, @int_1, [@int_2]).should.be.false
|
44
45
|
end
|
45
46
|
|
46
47
|
it "should call" do
|
@@ -5,24 +5,30 @@ TestHelper.scope do |this|
|
|
5
5
|
this::D1 = this::DIR + "D1.md"
|
6
6
|
|
7
7
|
describe Pione::LiterateAction::Handler do
|
8
|
-
|
9
|
-
doc = LiterateAction::Document.load(
|
10
|
-
doc.find(
|
11
|
-
handler.textize(nil).chomp.should ==
|
8
|
+
def get_action(md, name, expected)
|
9
|
+
doc = LiterateAction::Document.load(md)
|
10
|
+
doc.find(name).tap do |handler|
|
11
|
+
handler.textize(nil).chomp.should == expected
|
12
12
|
end
|
13
|
-
|
14
|
-
|
13
|
+
end
|
14
|
+
|
15
|
+
def execute_action(md, name, expected)
|
16
|
+
doc = LiterateAction::Document.load(md)
|
17
|
+
doc.find(name).tap do |handler|
|
18
|
+
out = Location[Temppath.create]
|
19
|
+
handler.execute(:out => out)
|
20
|
+
out.read.chomp.should == expected
|
15
21
|
end
|
16
22
|
end
|
17
23
|
|
24
|
+
it "should get a text" do
|
25
|
+
get_action(this::D1, "Name1", "echo A")
|
26
|
+
get_action(this::D1, "Name2", "puts \"A\"\nputs \"B\"")
|
27
|
+
end
|
28
|
+
|
18
29
|
it "should execute" do
|
19
|
-
|
20
|
-
|
21
|
-
handler.execute(nil).chomp.should == "A"
|
22
|
-
end
|
23
|
-
doc.find("Name2").tap do |handler|
|
24
|
-
handler.execute(nil).chomp.should == "A\nB"
|
25
|
-
end
|
30
|
+
execute_action(this::D1, "Name1", "A")
|
31
|
+
execute_action(this::D1, "Name2", "A\nB")
|
26
32
|
end
|
27
33
|
end
|
28
34
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'pione/test-helper'
|
2
2
|
|
3
|
-
describe Pione::LiterateAction::
|
3
|
+
describe Pione::LiterateAction::MarkdownParser do
|
4
4
|
it "should parse" do
|
5
|
-
parsed = LiterateAction::
|
5
|
+
parsed = LiterateAction::MarkdownParser.parse(Util::Indentation.cut(<<-ACTION))
|
6
6
|
# Titile
|
7
7
|
|
8
8
|
desc
|
@@ -37,7 +37,7 @@ describe Pione::LiterateAction::Parser do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should get a rule name without needless spaces" do
|
40
|
-
parsed = LiterateAction::
|
40
|
+
parsed = LiterateAction::MarkdownParser.parse(Util::Indentation.cut(<<-ACTION))
|
41
41
|
# Title
|
42
42
|
|
43
43
|
## Test
|
@@ -7,7 +7,7 @@ describe Pione::Log::CUIMessageLogReceiver do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should receive a message" do
|
10
|
-
@receiver.receive("test message", 0, "TEST", :red)
|
10
|
+
@receiver.receive("test message", 0, "TEST", :red, nil)
|
11
11
|
@io.string.chomp.should == "%s test message" % " TEST".color(:red)
|
12
12
|
end
|
13
13
|
end
|
@@ -6,7 +6,7 @@ describe Pione::Package::PackageInfo do
|
|
6
6
|
name: "P1",
|
7
7
|
editor: "yamaguchi",
|
8
8
|
tag: "test",
|
9
|
-
parents: [Package::
|
9
|
+
parents: [Package::ParentPackageInfo.new(name: "P2"), Package::ParentPackageInfo.new(name: "P3")],
|
10
10
|
documents: ["D1.pione", "D2.pione", "D3.pione"],
|
11
11
|
scenarios: ["s1", "s2", "s3"]
|
12
12
|
)
|
@@ -7,6 +7,7 @@ TestHelper.scope do |this|
|
|
7
7
|
|
8
8
|
describe Pione::PNML::InputMergeComplement do
|
9
9
|
it "should name by `input merge` in simple case" do
|
10
|
+
env = Lang::Environment.new
|
10
11
|
net = PNML::Reader.read(this::SIMPLE)
|
11
12
|
|
12
13
|
# transition
|
@@ -14,13 +15,14 @@ TestHelper.scope do |this|
|
|
14
15
|
place = net.find_all_places_by_target_id(transition_A.id).first
|
15
16
|
|
16
17
|
# apply "input merge complement" rule
|
17
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputMergeComplement}.rewrite(net)
|
18
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputMergeComplement}.rewrite(net, env)
|
18
19
|
|
19
20
|
# test
|
20
21
|
place.name.should == "<'i1' or 'i2' or 'i3'"
|
21
22
|
end
|
22
23
|
|
23
24
|
it "should name by `input merge` in complex case" do
|
25
|
+
env = Lang::Environment.new
|
24
26
|
net = PNML::Reader.read(this::COMPLEX)
|
25
27
|
|
26
28
|
# transition
|
@@ -30,7 +32,7 @@ TestHelper.scope do |this|
|
|
30
32
|
place_LB = net.find_all_places_by_target_id(transition_B.id).first
|
31
33
|
|
32
34
|
# apply "input merge complement" rule
|
33
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputMergeComplement}.rewrite(net)
|
35
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputMergeComplement}.rewrite(net, env)
|
34
36
|
|
35
37
|
# test
|
36
38
|
place_LA.name.should == "<'i1' or 'i2' or 'i3'"
|
@@ -7,6 +7,7 @@ TestHelper.scope do |this|
|
|
7
7
|
|
8
8
|
describe Pione::PNML::InputParallelizationComplement do
|
9
9
|
it "should name by `input parallelization` in simple case" do
|
10
|
+
env = Lang::Environment.new
|
10
11
|
net = PNML::Reader.read(this::SIMPLE)
|
11
12
|
|
12
13
|
# elements
|
@@ -18,7 +19,7 @@ TestHelper.scope do |this|
|
|
18
19
|
place_LC = net.find_all_places_by_target_id(transition_C.id).first
|
19
20
|
|
20
21
|
# apply "input parallelization complement" rule
|
21
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputParallelizationComplement}.rewrite(net)
|
22
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputParallelizationComplement}.rewrite(net, env)
|
22
23
|
|
23
24
|
# test
|
24
25
|
place_LA.name.should == "'i1'"
|
@@ -27,6 +28,7 @@ TestHelper.scope do |this|
|
|
27
28
|
end
|
28
29
|
|
29
30
|
it "should name by `input parallelization` in complex case" do
|
31
|
+
env = Lang::Environment.new
|
30
32
|
net = PNML::Reader.read(this::COMPLEX)
|
31
33
|
|
32
34
|
# elements
|
@@ -38,7 +40,7 @@ TestHelper.scope do |this|
|
|
38
40
|
places_LC = net.find_all_places_by_target_id(transition_C.id)
|
39
41
|
|
40
42
|
# apply "input parallelization complement" rule
|
41
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputParallelizationComplement}.rewrite(net)
|
43
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputParallelizationComplement}.rewrite(net, env)
|
42
44
|
|
43
45
|
# test
|
44
46
|
places_LA.map{|place| place.name}.sort.should == ["'i1'", "'i2'"]
|
@@ -8,6 +8,7 @@ TestHelper.scope do |this|
|
|
8
8
|
|
9
9
|
describe Pione::PNML::InputReduction do
|
10
10
|
it "should reduce nodes by `input reduction` in simple case" do
|
11
|
+
env = Lang::Environment.new
|
11
12
|
net = PNML::Reader.read(this::SIMPLE)
|
12
13
|
|
13
14
|
# save net elements
|
@@ -17,7 +18,7 @@ TestHelper.scope do |this|
|
|
17
18
|
arc_A_o1 = net.find_arc(transition_A.id, place_o1.id)
|
18
19
|
|
19
20
|
# apply input reduction
|
20
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net)
|
21
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net, env)
|
21
22
|
|
22
23
|
# test transitions
|
23
24
|
net.transitions.size.should == 1
|
@@ -35,6 +36,7 @@ TestHelper.scope do |this|
|
|
35
36
|
end
|
36
37
|
|
37
38
|
it "should reduce nodes by `input reduction` in complex case" do
|
39
|
+
env = Lang::Environment.new
|
38
40
|
net = PNML::Reader.read(this::COMPLEX)
|
39
41
|
|
40
42
|
# save net elements
|
@@ -45,7 +47,7 @@ TestHelper.scope do |this|
|
|
45
47
|
place_o1 = net.find_place_by_name(">'o1'")
|
46
48
|
|
47
49
|
# apply output reduction
|
48
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net)
|
50
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net, env)
|
49
51
|
|
50
52
|
# test transitions
|
51
53
|
net.transitions.size.should == 1
|
@@ -67,6 +69,7 @@ TestHelper.scope do |this|
|
|
67
69
|
end
|
68
70
|
|
69
71
|
it "should reduce nodes by `input reduction` in long case" do
|
72
|
+
env = Lang::Environment.new
|
70
73
|
net = PNML::Reader.read(this::LONG)
|
71
74
|
|
72
75
|
# save net elements
|
@@ -76,7 +79,7 @@ TestHelper.scope do |this|
|
|
76
79
|
arc_A_o1 = net.find_arc(transition_A.id, place_o1.id)
|
77
80
|
|
78
81
|
# apply input reduction
|
79
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net)
|
82
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net, env)
|
80
83
|
|
81
84
|
# test transitions
|
82
85
|
net.transitions.size.should == 1
|
@@ -94,6 +97,7 @@ TestHelper.scope do |this|
|
|
94
97
|
end
|
95
98
|
|
96
99
|
it "should not reduce any nodes if there aren't output reducible nodes" do
|
100
|
+
env = Lang::Environment.new
|
97
101
|
net = PNML::Reader.read(this::DIR + "OutputReductionSimple.pnml")
|
98
102
|
|
99
103
|
# save net elements
|
@@ -102,7 +106,7 @@ TestHelper.scope do |this|
|
|
102
106
|
arcs = net.arcs.clone
|
103
107
|
|
104
108
|
# apply input reduction
|
105
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net)
|
109
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InputReduction}.rewrite(net, env)
|
106
110
|
|
107
111
|
# test
|
108
112
|
net.places.should == places
|
@@ -2,6 +2,7 @@ require 'pione/test-helper'
|
|
2
2
|
|
3
3
|
describe Pione::PNML::InvalidArcElimination do
|
4
4
|
it "should eliminate invalid arcs" do
|
5
|
+
env = Lang::Environment.new
|
5
6
|
net = PNML::Net.new
|
6
7
|
|
7
8
|
# place and transition
|
@@ -24,7 +25,7 @@ describe Pione::PNML::InvalidArcElimination do
|
|
24
25
|
net.arcs << PNML::Arc.new(net, net.generate_id, transition.id, transition.id)
|
25
26
|
|
26
27
|
# apply "invalid arc elimination" rule
|
27
|
-
PNML::NetRewriter.new{|rules| rules << PNML::InvalidArcElimination}.rewrite(net)
|
28
|
+
PNML::NetRewriter.new{|rules| rules << PNML::InvalidArcElimination}.rewrite(net, env)
|
28
29
|
|
29
30
|
# test
|
30
31
|
net.arcs.size.should == 1
|
@@ -7,6 +7,7 @@ TestHelper.scope do |this|
|
|
7
7
|
|
8
8
|
describe Pione::PNML::IOExpansion do
|
9
9
|
it "should expand in simple case" do
|
10
|
+
env = Lang::Environment.new
|
10
11
|
net = PNML::Reader.read(this::SIMPLE)
|
11
12
|
|
12
13
|
# save elements
|
@@ -19,7 +20,7 @@ TestHelper.scope do |this|
|
|
19
20
|
arc_p1_B = net.find_arc(place_p1.id, transition_B.id)
|
20
21
|
|
21
22
|
# apply "input/output expansion"
|
22
|
-
PNML::NetRewriter.new{|rules| rules << PNML::IOExpansion}.rewrite(net)
|
23
|
+
PNML::NetRewriter.new{|rules| rules << PNML::IOExpansion}.rewrite(net, env)
|
23
24
|
|
24
25
|
# new elements
|
25
26
|
places_p1= net.find_all_places_by_name("'p1'")
|
@@ -46,6 +47,7 @@ TestHelper.scope do |this|
|
|
46
47
|
end
|
47
48
|
|
48
49
|
it "should expand in complex case" do
|
50
|
+
env = Lang::Environment.new
|
49
51
|
net = PNML::Reader.read(this::COMPLEX)
|
50
52
|
|
51
53
|
# save elements
|
@@ -68,7 +70,7 @@ TestHelper.scope do |this|
|
|
68
70
|
arc_p2_E = net.find_arc(place_p2.id, transition_E.id)
|
69
71
|
|
70
72
|
# apply "input/output expansion"
|
71
|
-
PNML::NetRewriter.new{|rules| rules << PNML::IOExpansion}.rewrite(net)
|
73
|
+
PNML::NetRewriter.new{|rules| rules << PNML::IOExpansion}.rewrite(net, env)
|
72
74
|
|
73
75
|
# test the net
|
74
76
|
net.should.valid
|
@@ -5,10 +5,11 @@ TestHelper.scope do |this|
|
|
5
5
|
|
6
6
|
describe Pione::PNML::IsolatedElementElimination do
|
7
7
|
it "should elminate floating elements" do
|
8
|
+
env = Lang::Environment.new
|
8
9
|
net = PNML::Reader.read(this::DOC)
|
9
10
|
|
10
11
|
# apply floating element elimination
|
11
|
-
PNML::NetRewriter.new{|rules| rules << PNML::IsolatedElementElimination}.rewrite(net)
|
12
|
+
PNML::NetRewriter.new{|rules| rules << PNML::IsolatedElementElimination}.rewrite(net, env)
|
12
13
|
|
13
14
|
# test
|
14
15
|
net.find_transition_by_name("A").should.not.nil
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require 'pione/test-helper'
|
2
|
+
|
3
|
+
describe Pione::PNML::LabelExtractor do
|
4
|
+
def extract(name, label, expected)
|
5
|
+
PNML::LabelExtractor.send(name, label).should == expected
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should extract rule expressions" do
|
9
|
+
extract(:extract_rule_expr, "A", "A")
|
10
|
+
extract(:extract_rule_expr, "A # abc", "A")
|
11
|
+
extract(:extract_rule_expr, "A # a # b # c", "A")
|
12
|
+
extract(:extract_rule_expr, "A {X: 1}", "A {X: 1}")
|
13
|
+
extract(:extract_rule_expr, "extern A", "A")
|
14
|
+
extract(:extract_rule_expr, "extern A {X: 1}", "A {X: 1}")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "sohuld extract data expressions" do
|
18
|
+
extract(:extract_data_expr, "'*.a'", "'*.a'")
|
19
|
+
extract(:extract_data_expr, "'*.a' # abc", "'*.a'")
|
20
|
+
extract(:extract_data_expr, "'#.a' # abc", "'#.a'")
|
21
|
+
extract(:extract_data_expr, "'*.a' # a # b # c", "'*.a'")
|
22
|
+
extract(:extract_data_expr, "< '*.a'", "'*.a'")
|
23
|
+
extract(:extract_data_expr, "< '*.a' # abc", "'*.a'")
|
24
|
+
extract(:extract_data_expr, "> '*.a'", "'*.a'")
|
25
|
+
extract(:extract_data_expr, "> '*.a' # abc", "'*.a'")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should extract param set expressions" do
|
29
|
+
{ "{X: 1}" => "{X: 1}",
|
30
|
+
"{X: 1} # abc" => "{X: 1}",
|
31
|
+
"{X: 1, Y: 2, Z: 3}" => "{X: 1, Y: 2, Z: 3}",
|
32
|
+
"{X: 1, Y: 2, Z: 3} # abc" => "{X: 1, Y: 2, Z: 3}"
|
33
|
+
}.each do |label, expr|
|
34
|
+
PNML::LabelExtractor.extract_param_set(label).should == expr
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should extract ticket expressions" do
|
39
|
+
{ "<T>" => "<T>",
|
40
|
+
"<T> # abc" => "<T>"
|
41
|
+
}.each do |label, expr|
|
42
|
+
PNML::LabelExtractor.extract_ticket(label).should == expr
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should extract feature expressions" do
|
47
|
+
{ "+X" => "+X",
|
48
|
+
"-X" => "-X",
|
49
|
+
"!X" => "!X",
|
50
|
+
"?X" => "?X",
|
51
|
+
"+X # abc" => "+X",
|
52
|
+
"-X # abc" => "-X",
|
53
|
+
"!X # abc" => "!X",
|
54
|
+
"?X # abc" => "?X",
|
55
|
+
}.each do |label, expr|
|
56
|
+
PNML::LabelExtractor.extract_feature(label).should == expr
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should extract parameter sentences" do
|
61
|
+
{ "param $X" => "param $X",
|
62
|
+
"param $X := 1" => "param $X := 1",
|
63
|
+
"basic param $X" => "basic param $X",
|
64
|
+
"advanced param $X" => "advanced param $X",
|
65
|
+
"param $X # abc" => "param $X",
|
66
|
+
"param $X := 1 # abc" => "param $X := 1",
|
67
|
+
}.each do |label, expr|
|
68
|
+
PNML::LabelExtractor.extract_param_sentence(label).should == expr
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should extract feature sentences" do
|
73
|
+
extract(:extract_feature_sentence, "feature +X", "feature +X")
|
74
|
+
extract(:extract_feature_sentence, "feature -X", "feature -X")
|
75
|
+
extract(:extract_feature_sentence, "feature !X", "feature !X")
|
76
|
+
extract(:extract_feature_sentence, "feature ?X", "feature ?X")
|
77
|
+
extract(:extract_feature_sentence, "feature +X # abc", "feature +X")
|
78
|
+
extract(:extract_feature_sentence, "feature -X # abc", "feature -X")
|
79
|
+
extract(:extract_feature_sentence, "feature !X # abc", "feature !X")
|
80
|
+
extract(:extract_feature_sentence, "feature ?X # abc", "feature ?X")
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should extract variable binding sentences" do
|
84
|
+
extract(:extract_variable_binding, "$X := 1", "$X := 1")
|
85
|
+
extract(:extract_variable_binding, "$X := 1 # abc", "$X := 1")
|
86
|
+
extract(:extract_variable_binding, '$X := "# abc" # abc', '$X := "# abc"')
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should extract priority" do
|
90
|
+
{ "'*.a' #1" => 1,
|
91
|
+
"'*.a' #2" => 2,
|
92
|
+
"'*.a' #3" => 3,
|
93
|
+
"'*.a' #1 # abc" => 1,
|
94
|
+
"'#1' #1000" => 1000,
|
95
|
+
"'*.a'" => nil,
|
96
|
+
}.each do |label, priority|
|
97
|
+
PNML::LabelExtractor.extract_priority(label).should == priority
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -7,6 +7,7 @@ TestHelper.scope do |this|
|
|
7
7
|
|
8
8
|
describe Pione::PNML::OutputDecompositionComplement do
|
9
9
|
it "should complement the name of source place in simple case" do
|
10
|
+
env = Lang::Environment.new
|
10
11
|
net = PNML::Reader.read(this::SIMPLE)
|
11
12
|
|
12
13
|
# elements
|
@@ -14,13 +15,14 @@ TestHelper.scope do |this|
|
|
14
15
|
place_RA = net.find_all_places_by_source_id(transition_A.id).first
|
15
16
|
|
16
17
|
# apply "output decomposition complement" rule
|
17
|
-
PNML::NetRewriter.new{|rules| rules << PNML::OutputDecompositionComplement}.rewrite(net)
|
18
|
+
PNML::NetRewriter.new{|rules| rules << PNML::OutputDecompositionComplement}.rewrite(net, env)
|
18
19
|
|
19
20
|
# test
|
20
21
|
place_RA.name.should == ">'o1' or 'o2' or 'o3'"
|
21
22
|
end
|
22
23
|
|
23
24
|
it "should complement the name of source place in complex case" do
|
25
|
+
env = Lang::Environment.new
|
24
26
|
net = PNML::Reader.read(this::COMPLEX)
|
25
27
|
|
26
28
|
# elements
|
@@ -30,7 +32,7 @@ TestHelper.scope do |this|
|
|
30
32
|
place_RB = net.find_all_places_by_source_id(transition_B.id).first
|
31
33
|
|
32
34
|
# apply "output decomposition complement" rule
|
33
|
-
PNML::NetRewriter.new{|rules| rules << PNML::OutputDecompositionComplement}.rewrite(net)
|
35
|
+
PNML::NetRewriter.new{|rules| rules << PNML::OutputDecompositionComplement}.rewrite(net, env)
|
34
36
|
|
35
37
|
# test
|
36
38
|
place_RA.name.should == ">'o1' or 'o2' or 'o3'"
|