Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
doujutun3207
flink
提交
9e722dfd
F
flink
项目概览
doujutun3207
/
flink
与 Fork 源项目一致
从无法访问的项目Fork
通知
24
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
flink
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9e722dfd
编写于
9月 30, 2014
作者:
S
szape
提交者:
mbalassi
10月 01, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[streaming] Improved tests for CoReduceInvokables
上级
127470b8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
299 addition
and
108 deletion
+299
-108
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoBatchReduceTest.java
...k/streaming/api/invokable/operator/CoBatchReduceTest.java
+64
-19
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoGroupedBatchReduceTest.java
...ming/api/invokable/operator/CoGroupedBatchReduceTest.java
+78
-30
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoGroupedWindowReduceTest.java
...ing/api/invokable/operator/CoGroupedWindowReduceTest.java
+87
-38
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoWindowReduceTest.java
.../streaming/api/invokable/operator/CoWindowReduceTest.java
+70
-21
未找到文件。
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoBatchReduceTest.java
浏览文件 @
9e722dfd
...
...
@@ -30,7 +30,7 @@ import org.junit.Test;
public
class
CoBatchReduceTest
{
private
static
class
MyCoReduceFunction
implements
CoReduceFunction
<
Integer
,
Integer
,
String
>
{
private
static
class
MyCoReduceFunction
implements
CoReduceFunction
<
Integer
,
String
,
String
>
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
...
...
@@ -39,7 +39,7 @@ public class CoBatchReduceTest {
}
@Override
public
Integer
reduce2
(
Integer
value1
,
Integer
value2
)
{
public
String
reduce2
(
String
value1
,
String
value2
)
{
return
value1
+
value2
;
}
...
...
@@ -49,38 +49,83 @@ public class CoBatchReduceTest {
}
@Override
public
String
map2
(
Integer
value
)
{
return
value
.
toString
()
;
public
String
map2
(
String
value
)
{
return
value
;
}
}
@Test
public
void
coBatchReduceTest
()
{
public
void
coBatchReduceTest1
()
{
List
<
Integer
>
inputs
=
new
ArrayList
<
Integer
>();
for
(
Integer
i
=
1
;
i
<=
10
;
i
++)
{
inputs
.
add
(
i
);
}
List
<
String
>
inputs2
=
new
ArrayList
<
String
>();
inputs2
.
add
(
"a"
);
inputs2
.
add
(
"b"
);
inputs2
.
add
(
"c"
);
inputs2
.
add
(
"d"
);
inputs2
.
add
(
"e"
);
inputs2
.
add
(
"f"
);
inputs2
.
add
(
"g"
);
inputs2
.
add
(
"h"
);
inputs2
.
add
(
"i"
);
CoBatchReduceInvokable
<
Integer
,
String
,
String
>
invokable
=
new
CoBatchReduceInvokable
<
Integer
,
String
,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
4L
,
3L
);
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"10"
);
expected
.
add
(
"26"
);
expected
.
add
(
"19"
);
expected
.
add
(
"abc"
);
expected
.
add
(
"def"
);
expected
.
add
(
"ghi"
);
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs
,
inputs2
);
Collections
.
sort
(
result
);
Collections
.
sort
(
expected
);
assertEquals
(
expected
,
result
);
}
@Test
public
void
coBatchReduceTest2
()
{
List
<
Integer
>
inputs
=
new
ArrayList
<
Integer
>();
for
(
Integer
i
=
1
;
i
<=
10
;
i
++)
{
inputs
.
add
(
i
);
}
List
<
Integer
>
inputs2
=
new
ArrayList
<
Integer
>();
inputs2
.
add
(
1
);
inputs2
.
add
(
2
);
inputs2
.
add
(-
1
);
inputs2
.
add
(-
3
);
inputs2
.
add
(-
4
);
List
<
String
>
inputs2
=
new
ArrayList
<
String
>();
inputs2
.
add
(
"a"
);
inputs2
.
add
(
"b"
);
inputs2
.
add
(
"c"
);
inputs2
.
add
(
"d"
);
inputs2
.
add
(
"e"
);
inputs2
.
add
(
"f"
);
inputs2
.
add
(
"g"
);
inputs2
.
add
(
"h"
);
inputs2
.
add
(
"i"
);
CoBatchReduceInvokable
<
Integer
,
Integer
,
String
>
invokable
=
new
CoBatchReduceInvokable
<
Integer
,
Integer
,
String
>(
new
MyCoReduceFunction
(),
3
L
,
3L
,
2L
,
2L
);
CoBatchReduceInvokable
<
Integer
,
String
,
String
>
invokable
=
new
CoBatchReduceInvokable
<
Integer
,
String
,
String
>(
new
MyCoReduceFunction
(),
4
L
,
3L
,
2L
,
2L
);
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"6"
);
expected
.
add
(
"12"
);
expected
.
add
(
"10"
);
expected
.
add
(
"18"
);
expected
.
add
(
"24"
);
expected
.
add
(
"26"
);
expected
.
add
(
"34"
);
expected
.
add
(
"19"
);
expected
.
add
(
"2"
);
expected
.
add
(
"-8"
);
expected
.
add
(
"-4"
);
expected
.
add
(
"abc"
);
expected
.
add
(
"cde"
);
expected
.
add
(
"efg"
);
expected
.
add
(
"ghi"
);
expected
.
add
(
"i"
);
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs
,
inputs2
);
...
...
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoGroupedBatchReduceTest.java
浏览文件 @
9e722dfd
...
...
@@ -32,7 +32,7 @@ import org.junit.Test;
public
class
CoGroupedBatchReduceTest
{
private
static
class
MyCoReduceFunction
implements
CoReduceFunction
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
Integer
>,
String
>
{
CoReduceFunction
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
...
...
@@ -42,9 +42,9 @@ public class CoGroupedBatchReduceTest {
}
@Override
public
Tuple2
<
String
,
Integer
>
reduce2
(
Tuple2
<
String
,
Integer
>
value1
,
Tuple2
<
String
,
Integer
>
value2
)
{
return
new
Tuple2
<
String
,
Integer
>(
"a"
,
value1
.
f1
+
value2
.
f1
);
public
Tuple2
<
String
,
String
>
reduce2
(
Tuple2
<
String
,
String
>
value1
,
Tuple2
<
String
,
String
>
value2
)
{
return
new
Tuple2
<
String
,
String
>(
"a"
,
value1
.
f1
+
value2
.
f1
);
}
@Override
...
...
@@ -53,48 +53,96 @@ public class CoGroupedBatchReduceTest {
}
@Override
public
String
map2
(
Tuple2
<
String
,
Integer
>
value
)
{
return
value
.
f1
.
toString
()
;
public
String
map2
(
Tuple2
<
String
,
String
>
value
)
{
return
value
.
f1
;
}
}
@Test
public
void
coGroupedBatchReduceTest
()
{
public
void
coGroupedBatchReduceTest
1
()
{
List
<
Tuple2
<
String
,
Integer
>>
inputs1
=
new
ArrayList
<
Tuple2
<
String
,
Integer
>>();
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
1
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
5
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
3
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
4
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
5
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
6
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
7
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
8
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
9
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
10
));
List
<
Tuple2
<
String
,
Integer
>>
inputs2
=
new
ArrayList
<
Tuple2
<
String
,
Integer
>>();
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
1
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
2
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
5
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
7
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
9
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
10
));
List
<
Tuple2
<
String
,
String
>>
inputs2
=
new
ArrayList
<
Tuple2
<
String
,
String
>>();
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"a"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"b"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"c"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"d"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"e"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"f"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"g"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"h"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"i"
));
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"10"
);
expected
.
add
(
"7"
);
expected
.
add
(
"9"
);
expected
.
add
(
"24"
);
expected
.
add
(
"10"
);
expected
.
add
(
"10"
);
expected
.
add
(
"7"
);
expected
.
add
(
"9"
);
expected
.
add
(
"24"
);
expected
.
add
(
"10"
);
expected
.
add
(
"12"
);
expected
.
add
(
"33"
);
expected
.
add
(
"ace"
);
expected
.
add
(
"gi"
);
expected
.
add
(
"bdf"
);
expected
.
add
(
"h"
);
CoGroupedBatchReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>
invokable
=
new
CoGroupedBatchReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
4L
,
3L
,
0
,
0
);
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs1
,
inputs2
);
Collections
.
sort
(
result
);
Collections
.
sort
(
expected
);
assertEquals
(
expected
,
result
);
}
@Test
public
void
coGroupedBatchReduceTest2
()
{
CoGroupedBatchReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
Integer
>,
String
>
invokable
=
new
CoGroupedBatchReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
Integer
>,
String
>(
new
MyCoReduceFunction
(),
3L
,
3L
,
2L
,
2L
,
0
,
0
);
List
<
Tuple2
<
String
,
Integer
>>
inputs1
=
new
ArrayList
<
Tuple2
<
String
,
Integer
>>();
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
1
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
3
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
4
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
5
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
6
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
7
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
8
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
9
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
10
));
List
<
Tuple2
<
String
,
String
>>
inputs2
=
new
ArrayList
<
Tuple2
<
String
,
String
>>();
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"a"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"b"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"c"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"d"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"e"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"f"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"g"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"h"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"i"
));
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"10"
);
expected
.
add
(
"19"
);
expected
.
add
(
"12"
);
expected
.
add
(
"33"
);
expected
.
add
(
"19"
);
expected
.
add
(
"ace"
);
expected
.
add
(
"egi"
);
expected
.
add
(
"i"
);
expected
.
add
(
"bdf"
);
expected
.
add
(
"fh"
);
CoGroupedBatchReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>
invokable
=
new
CoGroupedBatchReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
2L
,
2L
,
0
,
0
);
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs1
,
inputs2
);
...
...
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoGroupedWindowReduceTest.java
浏览文件 @
9e722dfd
...
...
@@ -35,7 +35,7 @@ import org.junit.Test;
public
class
CoGroupedWindowReduceTest
{
private
static
class
MyCoReduceFunction
implements
CoReduceFunction
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
Integer
>,
String
>
{
CoReduceFunction
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
...
...
@@ -45,9 +45,9 @@ public class CoGroupedWindowReduceTest {
}
@Override
public
Tuple2
<
String
,
Integer
>
reduce2
(
Tuple2
<
String
,
Integer
>
value1
,
Tuple2
<
String
,
Integer
>
value2
)
{
return
new
Tuple2
<
String
,
Integer
>(
"a"
,
value1
.
f1
+
value2
.
f1
);
public
Tuple2
<
String
,
String
>
reduce2
(
Tuple2
<
String
,
String
>
value1
,
Tuple2
<
String
,
String
>
value2
)
{
return
new
Tuple2
<
String
,
String
>(
"a"
,
value1
.
f1
+
value2
.
f1
);
}
@Override
...
...
@@ -56,8 +56,8 @@ public class CoGroupedWindowReduceTest {
}
@Override
public
String
map2
(
Tuple2
<
String
,
Integer
>
value
)
{
return
value
.
f1
.
toString
()
;
public
String
map2
(
Tuple2
<
String
,
String
>
value
)
{
return
value
.
f1
;
}
}
...
...
@@ -84,51 +84,100 @@ public class CoGroupedWindowReduceTest {
}
}
List
<
Long
>
timestamps
=
Arrays
.
asList
(
0L
,
1L
,
1L
,
2L
,
2L
,
8L
,
8L
,
10L
);
@Test
public
void
coGroupedWindowReduceTest1
()
{
List
<
Long
>
timestamps1
=
Arrays
.
asList
(
0L
,
0L
,
1L
,
1L
,
1L
,
1L
,
2L
,
4L
,
5L
,
6L
);
List
<
Tuple2
<
String
,
Integer
>>
inputs1
=
new
ArrayList
<
Tuple2
<
String
,
Integer
>>();
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
1
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
3
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
4
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
5
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
6
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
7
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
8
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
9
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
10
));
List
<
Long
>
timestamps2
=
Arrays
.
asList
(
1L
,
1L
,
2L
,
2L
,
3L
,
5L
,
5L
,
6L
,
7L
);
List
<
Tuple2
<
String
,
String
>>
inputs2
=
new
ArrayList
<
Tuple2
<
String
,
String
>>();
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"a"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"b"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"c"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"d"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"e"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"f"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"g"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"h"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"i"
));
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"6"
);
expected
.
add
(
"22"
);
expected
.
add
(
"27"
);
expected
.
add
(
"ace"
);
expected
.
add
(
"bd"
);
expected
.
add
(
"g"
);
expected
.
add
(
"fh"
);
expected
.
add
(
"i"
);
CoGroupedWindowReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>
invokable
=
new
CoGroupedWindowReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
4L
,
3L
,
0
,
0
,
new
MyTimeStamp
<
Tuple2
<
String
,
Integer
>>(
timestamps1
),
new
MyTimeStamp
<
Tuple2
<
String
,
String
>>(
timestamps2
));
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs1
,
inputs2
);
Collections
.
sort
(
result
);
Collections
.
sort
(
expected
);
assertEquals
(
expected
,
result
);
}
@Test
public
void
coGroupedWindowReduceTest
()
{
public
void
coGroupedWindowReduceTest
2
()
{
List
<
Long
>
timestamps1
=
Arrays
.
asList
(
0L
,
0L
,
1L
,
2L
,
2L
,
3L
,
4L
,
4L
,
5L
,
6L
);
List
<
Tuple2
<
String
,
Integer
>>
inputs1
=
new
ArrayList
<
Tuple2
<
String
,
Integer
>>();
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
1
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
5
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
3
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
4
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
5
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
6
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
7
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
8
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
9
));
inputs1
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
10
));
List
<
Tuple2
<
String
,
Integer
>>
inputs2
=
new
ArrayList
<
Tuple2
<
String
,
Integer
>>();
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
1
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
2
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
2
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
5
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"a"
,
7
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
9
));
inputs2
.
add
(
new
Tuple2
<
String
,
Integer
>(
"b"
,
10
));
List
<
Long
>
timestamps2
=
Arrays
.
asList
(
1L
,
1L
,
2L
,
2L
,
3L
,
3L
,
4L
,
4L
,
5L
);
List
<
Tuple2
<
String
,
String
>>
inputs2
=
new
ArrayList
<
Tuple2
<
String
,
String
>>();
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"a"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"b"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"c"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"d"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"e"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"f"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"g"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"2"
,
"h"
));
inputs2
.
add
(
new
Tuple2
<
String
,
String
>(
"1"
,
"i"
));
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"3"
);
expected
.
add
(
"9"
);
expected
.
add
(
"15"
);
expected
.
add
(
"6"
);
expected
.
add
(
"16"
);
expected
.
add
(
"23"
);
expected
.
add
(
"7"
);
expected
.
add
(
"7"
);
expected
.
add
(
"9"
);
expected
.
add
(
"7"
);
expected
.
add
(
"19"
);
expected
.
add
(
"3"
);
expected
.
add
(
"9"
);
expected
.
add
(
"7"
);
expected
.
add
(
"7"
);
expected
.
add
(
"9"
);
expected
.
add
(
"7"
);
expected
.
add
(
"19"
);
CoGroupedWindowReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
Integer
>,
String
>
invokable
=
new
CoGroupedWindowReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
Integer
>,
String
>(
new
MyCoReduceFunction
(),
3L
,
3L
,
2L
,
2L
,
0
,
0
,
new
MyTimeStamp
<
Tuple2
<
String
,
Integer
>>(
timestamps
),
new
MyTimeStamp
<
Tuple2
<
String
,
Integer
>>(
timestamps
));
expected
.
add
(
"27"
);
expected
.
add
(
"ace"
);
expected
.
add
(
"bdf"
);
expected
.
add
(
"egi"
);
expected
.
add
(
"fh"
);
CoGroupedWindowReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>
invokable
=
new
CoGroupedWindowReduceInvokable
<
Tuple2
<
String
,
Integer
>,
Tuple2
<
String
,
String
>,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
2L
,
2L
,
0
,
0
,
new
MyTimeStamp
<
Tuple2
<
String
,
Integer
>>(
timestamps1
),
new
MyTimeStamp
<
Tuple2
<
String
,
String
>>(
timestamps2
));
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs1
,
inputs2
);
...
...
flink-addons/flink-streaming/flink-streaming-core/src/test/java/org/apache/flink/streaming/api/invokable/operator/CoWindowReduceTest.java
浏览文件 @
9e722dfd
...
...
@@ -33,7 +33,7 @@ import org.junit.Test;
public
class
CoWindowReduceTest
{
private
static
class
MyCoReduceFunction
implements
CoReduceFunction
<
Integer
,
Integer
,
String
>
{
private
static
class
MyCoReduceFunction
implements
CoReduceFunction
<
Integer
,
String
,
String
>
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
...
...
@@ -42,7 +42,7 @@ public class CoWindowReduceTest {
}
@Override
public
Integer
reduce2
(
Integer
value1
,
Integer
value2
)
{
public
String
reduce2
(
String
value1
,
String
value2
)
{
return
value1
+
value2
;
}
...
...
@@ -52,8 +52,8 @@ public class CoWindowReduceTest {
}
@Override
public
String
map2
(
Integer
value
)
{
return
value
.
toString
()
;
public
String
map2
(
String
value
)
{
return
value
;
}
}
...
...
@@ -80,36 +80,85 @@ public class CoWindowReduceTest {
}
}
List
<
Long
>
timestamps1
=
Arrays
.
asList
(
0L
,
1L
,
1L
,
1L
,
2L
,
2L
,
2L
,
3L
,
8L
,
10L
);
@Test
public
void
coWindowReduceTest1
()
{
List
<
Integer
>
inputs
=
new
ArrayList
<
Integer
>();
for
(
Integer
i
=
1
;
i
<=
10
;
i
++)
{
inputs
.
add
(
i
);
}
List
<
String
>
inputs2
=
new
ArrayList
<
String
>();
inputs2
.
add
(
"a"
);
inputs2
.
add
(
"b"
);
inputs2
.
add
(
"c"
);
inputs2
.
add
(
"d"
);
inputs2
.
add
(
"e"
);
inputs2
.
add
(
"f"
);
inputs2
.
add
(
"g"
);
inputs2
.
add
(
"h"
);
inputs2
.
add
(
"i"
);
List
<
Long
>
timestamps1
=
Arrays
.
asList
(
0L
,
2L
,
3L
,
5L
,
7L
,
9L
,
10L
,
11L
,
11L
,
13L
);
List
<
Long
>
timestamps2
=
Arrays
.
asList
(
0L
,
1L
,
1L
,
2L
,
2L
,
3L
,
3L
,
4L
,
4L
);
CoWindowReduceInvokable
<
Integer
,
String
,
String
>
invokable
=
new
CoWindowReduceInvokable
<
Integer
,
String
,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
4L
,
3L
,
new
MyTimeStamp
<
Integer
>(
timestamps1
),
new
MyTimeStamp
<
String
>(
timestamps2
));
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"6"
);
expected
.
add
(
"9"
);
expected
.
add
(
"30"
);
expected
.
add
(
"10"
);
expected
.
add
(
"abcde"
);
expected
.
add
(
"fghi"
);
List
<
Long
>
timestamps2
=
Arrays
.
asList
(
0L
,
5L
,
5L
,
6L
,
6L
);
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs
,
inputs2
);
Collections
.
sort
(
result
);
Collections
.
sort
(
expected
);
assertEquals
(
expected
,
result
);
}
@Test
public
void
coWindowReduceTest
()
{
public
void
coWindowReduceTest
2
()
{
List
<
Integer
>
inputs
=
new
ArrayList
<
Integer
>();
for
(
Integer
i
=
1
;
i
<=
10
;
i
++)
{
inputs
.
add
(
i
);
}
List
<
Integer
>
inputs2
=
new
ArrayList
<
Integer
>();
inputs2
.
add
(
1
);
inputs2
.
add
(
2
);
inputs2
.
add
(-
1
);
inputs2
.
add
(-
3
);
inputs2
.
add
(-
4
);
List
<
String
>
inputs2
=
new
ArrayList
<
String
>();
inputs2
.
add
(
"a"
);
inputs2
.
add
(
"b"
);
inputs2
.
add
(
"c"
);
inputs2
.
add
(
"d"
);
inputs2
.
add
(
"e"
);
inputs2
.
add
(
"f"
);
inputs2
.
add
(
"g"
);
inputs2
.
add
(
"h"
);
inputs2
.
add
(
"i"
);
CoWindowReduceInvokable
<
Integer
,
Integer
,
String
>
invokable
=
new
CoWindowReduceInvokable
<
Integer
,
Integer
,
String
>(
new
MyCoReduceFunction
(),
3L
,
3L
,
2L
,
2L
,
new
MyTimeStamp
<
Integer
>(
timestamps1
),
new
MyTimeStamp
<
Integer
>(
timestamps2
));
List
<
Long
>
timestamps1
=
Arrays
.
asList
(
0L
,
1L
,
1L
,
1L
,
2L
,
2L
,
3L
,
8L
,
10L
,
11L
);
List
<
Long
>
timestamps2
=
Arrays
.
asList
(
1L
,
2L
,
4L
,
5L
,
6L
,
9L
,
10L
,
11L
,
13L
);
CoWindowReduceInvokable
<
Integer
,
String
,
String
>
invokable
=
new
CoWindowReduceInvokable
<
Integer
,
String
,
String
>(
new
MyCoReduceFunction
(),
4L
,
3L
,
2L
,
2L
,
new
MyTimeStamp
<
Integer
>(
timestamps1
),
new
MyTimeStamp
<
String
>(
timestamps2
));
List
<
String
>
expected
=
new
ArrayList
<
String
>();
expected
.
add
(
"28"
);
expected
.
add
(
"26"
);
expected
.
add
(
"9"
);
expected
.
add
(
"19"
);
expected
.
add
(
"1"
);
expected
.
add
(
"-6"
);
expected
.
add
(
"18"
);
expected
.
add
(
"8"
);
expected
.
add
(
"27"
);
expected
.
add
(
"ab"
);
expected
.
add
(
"cd"
);
expected
.
add
(
"de"
);
expected
.
add
(
"f"
);
expected
.
add
(
"fgh"
);
expected
.
add
(
"hi"
);
List
<
String
>
result
=
MockCoInvokable
.
createAndExecute
(
invokable
,
inputs
,
inputs2
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录