Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
474c9f7b
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
474c9f7b
编写于
12月 13, 2015
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add tests.
上级
e0b34f7e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
59 addition
and
30 deletion
+59
-30
src/Workspaces/CoreTest/UtilityTest/EditDistanceTests.cs
src/Workspaces/CoreTest/UtilityTest/EditDistanceTests.cs
+59
-30
未找到文件。
src/Workspaces/CoreTest/UtilityTest/EditDistanceTests.cs
浏览文件 @
474c9f7b
...
...
@@ -7,92 +7,121 @@ namespace Microsoft.CodeAnalysis.UnitTests
{
public
class
EditDistanceTests
{
private
static
int
Get
EditDistance
(
string
s
,
string
t
)
private
static
int
Verify
EditDistance
(
string
s
,
string
t
)
{
// We want the full edit distance, without bailing out early because we crossed the
// threshold.
return
EditDistance
.
GetEditDistance
(
s
,
t
);
var
editDistance1
=
EditDistance
.
GetEditDistance
(
s
,
t
);
var
editDistance2
=
EditDistance
.
GetEditDistance
(
s
,
t
,
editDistance1
);
Assert
.
Equal
(
editDistance1
,
editDistance2
);
return
editDistance1
;
}
[
Fact
]
public
void
EditDistance0
()
{
Assert
.
Equal
(
Get
EditDistance
(
""
,
""
),
0
);
Assert
.
Equal
(
Get
EditDistance
(
"a"
,
"a"
),
0
);
Assert
.
Equal
(
Verify
EditDistance
(
""
,
""
),
0
);
Assert
.
Equal
(
Verify
EditDistance
(
"a"
,
"a"
),
0
);
}
[
Fact
]
public
void
EditDistance1
()
{
Assert
.
Equal
(
Get
EditDistance
(
""
,
"a"
),
1
);
Assert
.
Equal
(
Get
EditDistance
(
"a"
,
""
),
1
);
Assert
.
Equal
(
Get
EditDistance
(
"a"
,
"b"
),
1
);
Assert
.
Equal
(
Get
EditDistance
(
"ab"
,
"a"
),
1
);
Assert
.
Equal
(
Get
EditDistance
(
"a"
,
"ab"
),
1
);
Assert
.
Equal
(
Get
EditDistance
(
"aabb"
,
"abab"
),
1
);
Assert
.
Equal
(
Verify
EditDistance
(
""
,
"a"
),
1
);
Assert
.
Equal
(
Verify
EditDistance
(
"a"
,
""
),
1
);
Assert
.
Equal
(
Verify
EditDistance
(
"a"
,
"b"
),
1
);
Assert
.
Equal
(
Verify
EditDistance
(
"ab"
,
"a"
),
1
);
Assert
.
Equal
(
Verify
EditDistance
(
"a"
,
"ab"
),
1
);
Assert
.
Equal
(
Verify
EditDistance
(
"aabb"
,
"abab"
),
1
);
}
[
Fact
]
public
void
EditDistance2
()
{
Assert
.
Equal
(
Get
EditDistance
(
""
,
"aa"
),
2
);
Assert
.
Equal
(
Get
EditDistance
(
"aa"
,
""
),
2
);
Assert
.
Equal
(
Get
EditDistance
(
"aa"
,
"bb"
),
2
);
Assert
.
Equal
(
Get
EditDistance
(
"aab"
,
"a"
),
2
);
Assert
.
Equal
(
Get
EditDistance
(
"a"
,
"aab"
),
2
);
Assert
.
Equal
(
Get
EditDistance
(
"aababb"
,
"ababab"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
""
,
"aa"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"aa"
,
""
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"aa"
,
"bb"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"aab"
,
"a"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"a"
,
"aab"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"aababb"
,
"ababab"
),
2
);
}
[
Fact
]
public
void
EditDistance3
()
{
Assert
.
Equal
(
Get
EditDistance
(
""
,
"aaa"
),
3
);
Assert
.
Equal
(
Get
EditDistance
(
"aaa"
,
""
),
3
);
Assert
.
Equal
(
Get
EditDistance
(
"aaa"
,
"bbb"
),
3
);
Assert
.
Equal
(
Get
EditDistance
(
"aaab"
,
"a"
),
3
);
Assert
.
Equal
(
Get
EditDistance
(
"a"
,
"aaab"
),
3
);
Assert
.
Equal
(
Get
EditDistance
(
"aababbab"
,
"abababaa"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
""
,
"aaa"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"aaa"
,
""
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"aaa"
,
"bbb"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"aaab"
,
"a"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"a"
,
"aaab"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"aababbab"
,
"abababaa"
),
3
);
}
[
Fact
]
public
void
EditDistance4
()
{
Assert
.
Equal
(
Get
EditDistance
(
"XlmReade"
,
"XmlReader"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"XlmReade"
,
"XmlReader"
),
2
);
}
public
void
EditDistance5
()
{
Assert
.
Equal
(
Get
EditDistance
(
"Zeil"
,
"trials"
),
4
);
Assert
.
Equal
(
Verify
EditDistance
(
"Zeil"
,
"trials"
),
4
);
}
[
Fact
]
public
void
EditDistance6
()
{
Assert
.
Equal
(
Get
EditDistance
(
"barking"
,
"corkliness"
),
6
);
Assert
.
Equal
(
Verify
EditDistance
(
"barking"
,
"corkliness"
),
6
);
}
[
Fact
]
public
void
EditDistance7
()
{
Assert
.
Equal
(
Get
EditDistance
(
"kitten"
,
"sitting"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"kitten"
,
"sitting"
),
3
);
}
[
Fact
]
public
void
EditDistance8
()
{
Assert
.
Equal
(
Get
EditDistance
(
"sunday"
,
"saturday"
),
3
);
Assert
.
Equal
(
Verify
EditDistance
(
"sunday"
,
"saturday"
),
3
);
}
[
Fact
]
public
void
EditDistance9
()
{
Assert
.
Equal
(
Get
EditDistance
(
"meilenstein"
,
"levenshtein"
),
4
);
Assert
.
Equal
(
Verify
EditDistance
(
"meilenstein"
,
"levenshtein"
),
4
);
}
[
Fact
]
public
void
EditDistance10
()
{
Assert
.
Equal
(
GetEditDistance
(
"rosettacode"
,
"raisethysword"
),
8
);
Assert
.
Equal
(
VerifyEditDistance
(
"rosettacode"
,
"raisethysword"
),
8
);
}
[
Fact
]
public
void
EditDistance11
()
{
Assert
.
Equal
(
VerifyEditDistance
(
"aaaab"
,
"aaabc"
),
2
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaab"
,
"aabcc"
),
3
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaab"
,
"abccc"
),
4
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaab"
,
"bcccc"
),
5
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabb"
,
"aaabbc"
),
2
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabb"
,
"aabbcc"
),
4
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabb"
,
"abbccc"
),
5
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabb"
,
"bbcccc"
),
6
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbb"
,
"aaabbbc"
),
2
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbb"
,
"aabbbcc"
),
4
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbb"
,
"abbbccc"
),
6
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbb"
,
"bbbcccc"
),
7
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbbb"
,
"aaabbbbc"
),
2
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbbb"
,
"aabbbbcc"
),
4
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbbb"
,
"abbbbccc"
),
6
);
Assert
.
Equal
(
VerifyEditDistance
(
"aaaabbbb"
,
"bbbbcccc"
),
8
);
}
[
Fact
]
...
...
@@ -109,7 +138,7 @@ public void TestMetric()
// OSA(CA,AC) + OSA(AC,ABC) >= OSA(CA,ABC) ... 1 + 1 >= 3 is not true.
//
// Being a metric is important so that we can properly use this with BKTrees.
Assert
.
Equal
(
Get
EditDistance
(
"CA"
,
"ABC"
),
2
);
Assert
.
Equal
(
Verify
EditDistance
(
"CA"
,
"ABC"
),
2
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录