为什么会想起来要建立测试的模型,主要是基于一个以前项目的想法。下面是这个项目的例子,非常容易明白,输入是命令行的语法,输出是可能的所有命令的组合,还有一个图例,用线条表示出所有可能的命令组合。
Input:
command -option1 <value1> -option2 { { value2-1 | value2-2 } -option3 <value3> { -option4 <value4> | -option5 } -option6 <value6> { -option7 <value7> | -option8 } | { value2-3 | value2-4 } -option9 <value9> { -option10 <value10> | -option11 } }
Output:
command -option1 <value1> -option2 value2-1 -option3 <value3> -option4 <value4> -option6 <value6> -option7 <value7>
command -option1 <value1> -option2 value2-4 -option9 <value9> -option10 <value10>
command -option1 <value1> -option2 value2-2 -option3 <value3> -option4 <value4> -option6 <value6> -option7 <value7>
command -option1 <value1> -option2 value2-1 -option3 <value3> -option4 <value4> -option6 <value6> -option8
command -option1 <value1> -option2 value2-1 -option3 <value3> -option5 -option6 <value6> -option7 <value7>
command -option1 <value1> -option2 value2-3 -option9 <value9> -option10 <value10>
command -option1 <value1> -option2 value2-4 -option9 <value9> -option11
command -option1 <value1> -option2 value2-1 -option3 <value3> -option5 -option6 <value6> -option8
command -option1 <value1> -option2 value2-2 -option3 <value3> -option4 <value4> -option6 <value6> -option8
command -option1 <value1> -option2 value2-2 -option3 <value3> -option5 -option6 <value6> -option7 <value7>
command -option1 <value1> -option2 value2-3 -option9 <value9> -option11
Output with Graph:
Another example:
input:
getup eat { bread | egg | noodle | apple } [ drink { juice | water | milk } ] { work | play { swimming | pool | football | basketball | badminton | pingpang } | listen music | watch { movie | TV } }
output:
optimized possible combinations:
getup eat bread drink juice work
getup eat bread drink juice play swimming
getup eat noodle drink milk listen music
getup eat noodle drink milk watch movie
getup eat noodle drink milk work
getup eat noodle drink milk play pool
getup eat noodle drink milk play football
getup eat noodle drink milk play basketball
getup eat noodle drink milk play badminton
getup eat noodle drink milk play pingpang
getup eat noodle drink milk watch TV
getup eat bread drink water work
getup eat apple drink juice work
getup eat egg drink juice work
getup eat noodle drink milk play swimming
getup eat apple drink juice listen music
getup eat apple drink juice watch movie
getup eat bread drink water play swimming
getup eat bread drink water play pool
getup eat apple drink juice play swimming
getup eat apple drink juice play pool
getup eat apple drink juice play football
getup eat apple drink juice play basketball
getup eat apple drink juice play badminton
getup eat apple drink juice play pingpang
getup eat apple drink juice watch TV
getup eat bread drink water play football
getup eat apple drink water listen music
getup eat apple drink water watch movie
getup eat bread drink water listen music
getup eat bread drink water watch movie
getup eat egg drink juice play swimming
getup eat egg drink juice listen music
getup eat egg drink juice watch movie
getup eat apple drink water work
getup eat apple drink water play basketball
getup eat apple drink water play badminton
getup eat apple drink water play pingpang
getup eat apple drink water watch TV
getup eat bread drink water play basketball
getup eat apple drink milk work
getup eat bread drink water play badminton
getup eat bread drink water play pingpang
getup eat bread drink water watch TV
getup eat bread drink milk work
getup eat egg drink juice play pool
getup eat egg drink juice play football
getup eat egg drink juice play basketball
getup eat egg drink juice play badminton
getup eat egg drink juice play pingpang
getup eat egg drink juice watch TV
getup eat egg drink water work
getup eat egg drink milk work
getup eat noodle drink juice work
getup eat noodle drink water work
Graph with combinations: