view ebcsgen_static_analysis.xml @ 0:35cc9bb0b4e9 draft

planemo upload for repository https://github.com/sybila/galaxytools/tree/master/tools/ebcsgen commit f39ef50b0964744be7816de065024eeb1fb69364
author sybila
date Sat, 08 Oct 2022 14:07:25 +0000
parents
children
line wrap: on
line source

<tool id="eBCSgen_static_analysis" name="eBCSgen static analysis" version="@TOOL_VERSION@_galaxy0">
    <description>- run static analysis techniques on given BCSL model</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="creator"/>
    <requirements>
        <container type="docker">sybila/ebcsgen:v@TOOL_VERSION@</container>
    </requirements>

    <options sanitize="False"/>
    <command>python3 ${__tool_directory__}/ebcsgen_static_analysis.py
        --model '$model'
        --output '$output'
        --method '$Method.method'
        #if $Method.method == "reach":
            --complex '$Method.complex'
        #end if
    </command>

    <inputs>
        <param format="bcsl.model" name="model" type="data" label="Model file" help="Provide a BCSL model file"/>
        <conditional name="Method">
            <param name="method" type="select" label="Choose static analysis method:">
                <option value="reach" selected="true">Static non-reachability</option>
                <option value="eliminate">Rule redundancy elimination</option>
                <option value="reduce">Context based reduction</option>
            </param>
            <when value="reach">
                <param name="complex" value="" type="text" label="Complex agent:">
                    <validator type="empty_field"/>
                </param>
            </when>
        </conditional>
    </inputs>

    <outputs>
        <data format="bcsl.model" name="output">
            <change_format>
                <when input="Method.method" value="reach" format="txt"/>
            </change_format>
        </data>
    </outputs>

    <tests>
        <test>
            <param name="model" value="redundant.bcsl.model" ftype="bcsl.model"/>
            <param name="method" value="reach"/>
            <param name="complex" value="P(S{i},T{a})::out"/>
            <output name="output" ftype="txt">
                <assert_contents>
                    <has_text text="can possibly be reached in the model"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="model" value="redundant.bcsl.model" ftype="bcsl.model"/>
            <param name="method" value="eliminate"/>
            <output name="output" ftype="bcsl.model">
                <assert_contents>
                    <has_text text="r1_X ~ // redundant #{1, 2} // P(T{i})::cell => P(T{a})::cell @ 1.0"/>
                    <has_text text="r1_T ~ // redundant #{1, 2} // P(T{i})::cell => P(T{a})::cell @ 1.0"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="model" value="redundant.bcsl.model" ftype="bcsl.model"/>
            <param name="method" value="reduce"/>
            <output name="output" value="reduced.bcsl.model" ftype="bcsl.model"/>
        </test>
    </tests>

</tool>