-
Notifications
You must be signed in to change notification settings - Fork 11
/
TestModule.java
77 lines (69 loc) · 2.15 KB
/
TestModule.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*******************************************************************************
* Copyright (c) 2020 École Polytechnique de Montréal
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.tracecompass.incubator.scripting.ui.tests;
import java.util.function.Function;
import org.eclipse.ease.modules.WrapToScript;
import org.eclipse.tracecompass.incubator.scripting.core.tests.perf.ScriptingBenchmark;
/**
* EASE module for scripting purposes
*
* @author Geneviève Bastien
*/
public class TestModule {
/**
* Execute a simple computation of java instructions
*/
@WrapToScript
public void doJavaLoop() {
int base = ScriptingBenchmark.INITIAL_VALUE;
long value = base;
while (base < ScriptingBenchmark.LIMIT) {
if (value == 1) {
value = base++;
}
if (value % 2 == 0) {
value = value / 2;
} else {
value = 3 * value + 1;
}
}
}
/**
* Execute a simple computation, but each loop calls a callback received in
* parameters to update the value
*
* @param function
* The function callback to execute
*/
@WrapToScript
public void doLoopWithCallback(Function<Long, Number> function) {
int base = ScriptingBenchmark.INITIAL_VALUE;
long value = base;
while (base < 20000) {
if (value == 1) {
value = base++;
}
value = function.apply(value).longValue();
}
}
/**
* Compute one value of the sequence
*
* @param value
* The value to use to compute
* @return The result of the computation
*/
@WrapToScript
public long compute(Long value) {
if (value % 2 == 0) {
return value / 2;
}
return 3 * value + 1;
}
}