我正在使用SpecExplorer生成测试套件。我有一个函数应该返回一个有序的字符串集合(与List.Sort()相同的排序行为)。
在模型中我使用的是Microsoft.Modeling.Sequence。无法使用List,因为如果您使用列表,SpecExplorer无法评估当前状态...
我的问题是: 如何在不使用列表的情况下返回已排序的Microsoft.Modeling.Sequence ...我知道我可以相互比较所有字符串,并且每个比较步骤都会创建一个新的不可变序列,但这看起来太复杂了。有更简单的解决方案吗?
OffTopic:没有SpecExplorer标签......
编辑:
当前的工作示例
Sequence<string> toSort = new Sequence<string>(new string[] { "Delta", "delta", "Alpha", "Gamma", "Beta" });
Sequence<string> sorted = new Sequence<string>();
while (toSort.Count != 0)
{
int currentMaxIndex = -1;
for (int i = 0; i < toSort.Count; i++)
if (currentMaxIndex == -1 || toSort[i].CompareTo(toSort[currentMaxIndex]) < 0)
currentMaxIndex = i;
sorted = sorted.Add(toSort[currentMaxIndex]);
toSort = toSort.RemoveAt(currentMaxIndex);
}
答案 0 :(得分:1)
也许有些问题: