Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mjtest-tests
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uydwl
mjtest-tests
Commits
60323df0
Commit
60323df0
authored
Nov 17, 2018
by
uiekn
Committed by
uwdkn
Nov 17, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Test cases from group 3
parent
eac1252a
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
378 additions
and
1 deletion
+378
-1
semantic/Eratosthenes.java
semantic/Eratosthenes.java
+80
-0
semantic/FloatArithmetic.java
semantic/FloatArithmetic.java
+222
-0
semantic/dangling_else.java
semantic/dangling_else.java
+12
-0
semantic/empty_file.invalid.mj
semantic/empty_file.invalid.mj
+0
-0
semantic/field_access_type_error.invalid.mj
semantic/field_access_type_error.invalid.mj
+18
-0
semantic/multiple_declarations.invalid.mj
semantic/multiple_declarations.invalid.mj
+10
-0
semantic/primitive_type_error.invalid.mj
semantic/primitive_type_error.invalid.mj
+9
-0
semantic/separate_namespaces.java
semantic/separate_namespaces.java
+10
-0
semantic/shadow.java
semantic/shadow.java
+11
-0
semantic/special_param_redefinition.invalid.mj
semantic/special_param_redefinition.invalid.mj
+5
-0
semantic/special_param_usage.invalid.mj
semantic/special_param_usage.invalid.mj
+1
-1
No files found.
semantic/Eratosthenes.java
0 → 100644
View file @
60323df0
/**
* Implementation of the sieve of Eratosthenes.
*
* Computes all prime numbers in the interval [2,n], where n is read from stdin.
* Note that System.in.read() returns the ASCII value of the character read!
*/
class
Eratosthenes
{
public
int
[]
result
;
public
int
count
;
public
void
sieve
(
int
max
)
{
boolean
[]
sieve
=
new
boolean
[
max
];
count
=
0
;
/* Initialize array. */
{
sieve
[
0
]
=
false
;
sieve
[
1
]
=
false
;
int
i
=
2
;
while
(
i
<
max
)
{
sieve
[
i
]
=
true
;
i
=
i
+
1
;
}
}
/* Sieve of Eratosthenes algorithm. */
{
int
prime
=
2
;
while
(
prime
<
max
)
{
if
(
sieve
[
prime
])
{
count
=
count
+
1
;
/* Deliberately unoptimized (strength reduction is possible). */
int
mult
=
prime
;
while
(
prime
*
mult
<
max
)
{
sieve
[
prime
*
mult
]
=
false
;
mult
=
mult
+
1
;
}
}
prime
=
prime
+
1
;
}
}
result
=
new
int
[
count
];
{
int
i
=
0
;
int
j
=
0
;
while
(
i
<
max
)
{
if
(
sieve
[
i
])
{
result
[
j
]
=
i
;
j
=
j
+
1
;
}
i
=
i
+
1
;
}
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Eratosthenes
e
=
new
Eratosthenes
();
int
num
=
System
.
in
.
read
();
e
.
sieve
(
num
);
{
int
i
=
0
;
System
.
out
.
println
(
e
.
count
);
while
(
i
<
e
.
count
)
{
System
.
out
.
println
(
e
.
result
[
i
]);
i
=
i
+
1
;
}
}
}
}
semantic/FloatArithmetic.java
0 → 100644
View file @
60323df0
class
FloatArithmetic
{
public
int
_2p8
;
public
int
_2p11
;
public
int
_2p16
;
public
int
_2p23
;
public
int
_2p24
;
public
int
_int_min
;
public
int
_f1_5
;
public
int
_fNaN
;
public
int
_seemlinglyArbitraryConstant
;
public
int
_exponentBias
;
public
void
init
()
{
_2p8
=
256
;
_2p11
=
2048
;
_2p16
=
65536
;
_2p23
=
8388608
;
_2p24
=
16777216
;
_int_min
=
-
2147483648
;
_f1_5
=
1069547520
;
_fNaN
=
-
1
;
_seemlinglyArbitraryConstant
=
1597463007
;
_exponentBias
=
127
;
}
public
int
buildFloat
(
int
sign
,
int
exponent
,
int
mantissa
)
{
int
result
=
exponent
*
_2p23
+
mantissa
;
if
(
sign
==
1
)
{
result
=
negate
(
result
);
}
return
result
;
}
public
int
negate
(
int
x
)
{
return
_int_min
+
x
;
}
public
int
sign
(
int
x
)
{
if
(
x
>=
0
)
{
return
0
;
}
else
{
return
1
;
}
}
public
int
exponent
(
int
x
)
{
if
(
x
<
0
)
{
x
=
negate
(
x
);
}
return
x
/
_2p23
%
_2p8
;
}
public
int
mantissa
(
int
x
)
{
if
(
x
<
0
)
{
x
=
negate
(
x
);
}
return
x
%
_2p23
;
}
public
int
div2
(
int
x
)
{
int
mantissa
=
mantissa
(
x
);
int
exponent
=
exponent
(
x
);
if
(
exponent
==
0
)
{
return
0
;
}
else
{
return
buildFloat
(
sign
(
x
),
exponent
(
x
)
-
1
,
mantissa
(
x
));
}
}
public
int
add
(
int
x
,
int
y
)
{
int
xm
=
mantissa
(
x
);
int
xe
=
exponent
(
x
);
int
xs
=
sign
(
x
);
int
ym
=
mantissa
(
y
);
int
ye
=
exponent
(
y
);
int
ys
=
sign
(
y
);
int
exponentDiff
;
int
exponent
;
int
mantissa
;
int
sign
;
int
lm
;
int
sm
;
if
(
xe
>
ye
)
{
exponentDiff
=
xe
-
ye
;
exponent
=
xe
;
sign
=
xs
;
lm
=
xm
;
sm
=
ym
;
}
else
{
exponentDiff
=
ye
-
xe
;
exponent
=
ye
;
lm
=
ym
;
sm
=
xm
;
if
(
xe
<
ye
||
xm
<
ym
)
{
sign
=
ys
;
}
else
{
sign
=
xs
;
}
}
lm
=
lm
+
_2p23
;
sm
=
sm
+
_2p23
;
while
(
exponentDiff
>
0
)
{
sm
=
sm
/
2
;
exponentDiff
=
exponentDiff
-
1
;
}
if
(
xs
==
ys
)
{
mantissa
=
lm
+
sm
;
}
else
{
mantissa
=
lm
-
sm
;
}
if
(
mantissa
/
_2p24
==
1
)
{
mantissa
=
mantissa
/
2
;
mantissa
=
mantissa
%
_2p23
;
exponent
=
exponent
+
1
;
}
else
{
mantissa
=
mantissa
%
_2p23
;
}
return
buildFloat
(
sign
,
exponent
,
mantissa
);
}
public
int
square
(
int
x
)
{
return
mult
(
x
,
x
);
}
public
int
mult
(
int
x
,
int
y
)
{
int
xm
=
mantissa
(
x
);
int
xe
=
exponent
(
x
);
int
xs
=
sign
(
x
);
int
ym
=
mantissa
(
y
);
int
ye
=
exponent
(
y
);
int
ys
=
sign
(
y
);
xm
=
xm
+
_2p23
;
ym
=
ym
+
_2p23
;
int
xm_lo
=
xm
%
_2p11
;
int
ym_lo
=
ym
%
_2p11
;
int
xm_hi
=
xm
/
_2p11
;
int
ym_hi
=
ym
/
_2p11
;
int
mantissa_lo
=
xm
*
ym
;
int
mantissa_hi
=
xm_hi
*
ym_hi
+
xm_hi
*
ym_lo
/
_2p11
+
xm_lo
*
ym_hi
/
_2p11
+
(
xm_lo
*
ym_hi
+
xm_lo
*
ym_hi
+
mantissa_lo
/
_2p11
)
/
_2p11
;
int
exponent
=
xe
+
ye
-
_exponentBias
;
int
mantissa
=
mantissa_hi
/
2
;
if
(
mantissa
/
_2p24
==
1
)
{
mantissa
=
mantissa
/
2
;
mantissa
=
mantissa
%
_2p23
;
exponent
=
exponent
+
1
;
}
else
{
mantissa
=
mantissa
%
_2p23
;
}
return
buildFloat
((
xs
+
ys
)
%
2
,
exponent
,
mantissa
);
}
public
int
invSqrt
(
int
num
)
{
if
(
num
<=
0
)
{
return
_fNaN
;
}
int
x2
=
div2
(
num
);
int
y
=
_seemlinglyArbitraryConstant
-
num
/
2
;
y
=
mult
(
y
,
add
(
_f1_5
,
negate
(
mult
(
x2
,
square
(
y
)))));
return
y
;
}
public
static
void
main
(
String
[]
args
)
{
FloatArithmetic
ca
=
new
FloatArithmetic
();
ca
.
init
();
/*System.out.println(Float.intBitsToFloat(ca.add(1036831949, 1069547520))); // 0.1 + 1.5
System.out.println(Float.intBitsToFloat(ca.add(1065353216, 1069547520))); // 1.0 + 1.5
System.out.println(Float.intBitsToFloat(ca.add(1069547520, 1069547520))); // 1.5 + 1.5
System.out.println(Float.intBitsToFloat(ca.add(1073741824, 1069547520))); // 2.0 + 1.5
System.out.println();
System.out.println(Float.intBitsToFloat(ca.mult(1036831949, 1069547520))); // 0.1 * 1.5
System.out.println(Float.intBitsToFloat(ca.mult(1065353216, 1069547520))); // 1.0 * 1.5
System.out.println(Float.intBitsToFloat(ca.mult(1069547520, 1069547520))); // 1.5 * 1.5
System.out.println(Float.intBitsToFloat(ca.mult(1073741824, 1069547520))); // 2.0 * 1.5
System.out.println();
System.out.println(Float.intBitsToFloat(ca.invSqrt(1036831949))); // 1 / sqrt(0.1)
System.out.println(Float.intBitsToFloat(ca.invSqrt(1065353216))); // 1 / sqrt(1.0)
System.out.println(Float.intBitsToFloat(ca.invSqrt(1069547520))); // 1 / sqrt(1.5)
System.out.println(Float.intBitsToFloat(ca.invSqrt(1073741824))); // 1 / sqrt(2.0)*/
}
}
semantic/dangling_else.java
0 → 100644
View file @
60323df0
class
Prog1
{
public
static
void
main
(
String
[]
args
)
{
(
new
Prog1
()).
test
();
}
public
boolean
test
()
{
int
a
=
10
;
if
(
a
>
0
)
if
(
a
>
5
)
if
(
a
>
10
)
return
true
;
else
return
false
;
else
return
true
;
return
false
;
}
}
semantic/empty_file.invalid.mj
0 → 100644
View file @
60323df0
semantic/field_access_type_error.invalid.mj
0 → 100644
View file @
60323df0
class C1 {
public int x;
}
class C2 {
public C1 x;
}
class TypeError {
public static void main(String[] args) {
boolean b;
C2 obj = new C2();
b = obj.x.x;
}
}
semantic/multiple_declarations.invalid.mj
0 → 100644
View file @
60323df0
class A {
public int a;
public boolean a;
}
class A {
public void a(int a) { }
public void a() { }
}
semantic/primitive_type_error.invalid.mj
0 → 100644
View file @
60323df0
class TypeError {
public static void main(String[] args) {
int i = 0;
boolean b = true;
i = true;
i = b;
}
}
semantic/separate_namespaces.java
0 → 100644
View file @
60323df0
class
foo
{
public
foo
foo
;
public
foo
foo
(
foo
foo
)
{
return
null
;
}
public
static
void
main
(
String
[]
args
)
{
}
}
semantic/shadow.java
0 → 100644
View file @
60323df0
class
ShadowField
{
public
int
a
;
public
static
void
main
(
String
[]
args
)
{
{
int
a
;
}
int
a
;
}
}
semantic/special_param_redefinition.invalid.mj
0 → 100644
View file @
60323df0
class SpecialParamUsage {
public static void main(String[] args) {
int[] args;
}
}
semantic/special_param_usage.invalid.mj
View file @
60323df0
class SpecialParamUsage {
class SpecialParamUsage {
public static void main(String[] args) {
public static void main(String[] args) {
String[] myA
rgs = args;
a
rgs = args;
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment