Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
droplet-sequence-generator
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Peter Wagenhuber
droplet-sequence-generator
Commits
36d565cc
Commit
36d565cc
authored
8 years ago
by
Peter Wagenhuber
Browse files
Options
Downloads
Patches
Plain Diff
Nloc als eigene klasse und TestNloc zum Testen
parent
3b018817
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/Nloc.java
+7
-131
7 additions, 131 deletions
src/Nloc.java
src/TestNloc.java
+126
-0
126 additions, 0 deletions
src/TestNloc.java
with
133 additions
and
131 deletions
src/Nloc.java
+
7
−
131
View file @
36d565cc
...
@@ -9,34 +9,7 @@ public class Nloc {
...
@@ -9,34 +9,7 @@ public class Nloc {
private
static
final
int
MIN_TIMEDIFF
=
6
;
private
static
final
int
MIN_TIMEDIFF
=
6
;
public
static
void
main
(
String
[]
args
)
{
public
int
getNumberOfDroplets
(
List
<
Channel
>
desiredPath
)
{
List
<
Channel
>
chanlist
=
getNloc0
();
Channel
p0
=
chanlist
.
get
(
chanlist
.
size
()
-
2
);
List
<
Channel
>
mod
=
getModulesByName
(
Arrays
.
asList
(
"m1"
,
"m2"
),
chanlist
);
List
<
List
<
Channel
>>
pathlist
=
getAllPaths
(
p0
,
new
ArrayList
<
Channel
>());
printPaths
(
pathlist
);
List
<
Channel
>
desiredPath
=
getDesiredPath
(
mod
,
pathlist
);
System
.
out
.
println
(
"Desired Path:"
);
if
(
desiredPath
.
isEmpty
())
{
System
.
out
.
println
(
"No such Path!"
);
}
else
{
printPath
(
desiredPath
);
}
System
.
out
.
println
(
"Number of Droplets needed: "
+
getNumberOfDroplets
(
desiredPath
));
}
public
static
int
getNumberOfDroplets
(
List
<
Channel
>
desiredPath
)
{
int
numOfDroplets
=
1
;
int
numOfDroplets
=
1
;
ListIterator
<
Channel
>
iter
=
desiredPath
.
listIterator
();
ListIterator
<
Channel
>
iter
=
desiredPath
.
listIterator
();
while
(
iter
.
hasNext
())
{
while
(
iter
.
hasNext
())
{
...
@@ -48,11 +21,11 @@ public class Nloc {
...
@@ -48,11 +21,11 @@ public class Nloc {
}
}
return
numOfDroplets
;
return
numOfDroplets
;
}
}
//
public
static
List<Droplet> generateDropletSequence(List<
Channel> path
) {
public
List
<
Droplet
>
generateDropletSequence
(
List
<
String
>
modules
)
{
//
}
}
public
static
List
<
Channel
>
getDesiredPath
(
List
<
Channel
>
modules
,
public
List
<
Channel
>
getDesiredPath
(
List
<
Channel
>
modules
,
List
<
List
<
Channel
>>
pathlist
)
{
List
<
List
<
Channel
>>
pathlist
)
{
List
<
Channel
>
found
=
new
ArrayList
<
Channel
>();
List
<
Channel
>
found
=
new
ArrayList
<
Channel
>();
for
(
List
<
Channel
>
path
:
pathlist
)
{
for
(
List
<
Channel
>
path
:
pathlist
)
{
...
@@ -63,7 +36,7 @@ public class Nloc {
...
@@ -63,7 +36,7 @@ public class Nloc {
return
found
;
return
found
;
}
}
public
static
List
<
Channel
>
getModulesByName
(
List
<
String
>
names
,
public
List
<
Channel
>
getModulesByName
(
List
<
String
>
names
,
List
<
Channel
>
chanlist
)
{
List
<
Channel
>
chanlist
)
{
List
<
Channel
>
ret
=
new
ArrayList
<
Channel
>();
List
<
Channel
>
ret
=
new
ArrayList
<
Channel
>();
for
(
String
name
:
names
)
{
for
(
String
name
:
names
)
{
...
@@ -76,27 +49,13 @@ public class Nloc {
...
@@ -76,27 +49,13 @@ public class Nloc {
return
ret
;
return
ret
;
}
}
public
static
void
printPath
(
List
<
Channel
>
path
)
{
public
List
<
List
<
Channel
>>
getAllPaths
(
Channel
chan
,
List
<
Channel
>
path
)
{
for
(
Channel
ch
:
path
)
{
System
.
out
.
print
(
"ID: "
+
ch
.
getID
()
+
" "
);
}
System
.
out
.
println
(
""
);
}
public
static
void
printPaths
(
List
<
List
<
Channel
>>
pathlist
)
{
System
.
out
.
println
(
"Number of paths found: "
+
pathlist
.
size
());
for
(
List
<
Channel
>
p
:
pathlist
)
{
printPath
(
p
);
}
}
public
static
List
<
List
<
Channel
>>
getAllPaths
(
Channel
chan
,
List
<
Channel
>
path
)
{
List
<
List
<
Channel
>>
pl
=
new
ArrayList
<
List
<
Channel
>>();
List
<
List
<
Channel
>>
pl
=
new
ArrayList
<
List
<
Channel
>>();
getAllPathsRecursive
(
chan
,
path
,
pl
);
getAllPathsRecursive
(
chan
,
path
,
pl
);
return
pl
;
return
pl
;
}
}
p
ublic
static
void
getAllPathsRecursive
(
Channel
chan
,
List
<
Channel
>
path
,
List
<
List
<
Channel
>>
pathlist
)
{
p
rivate
void
getAllPathsRecursive
(
Channel
chan
,
List
<
Channel
>
path
,
List
<
List
<
Channel
>>
pathlist
)
{
path
.
add
(
chan
);
path
.
add
(
chan
);
if
(
chan
.
getChildrenList
().
isEmpty
())
{
if
(
chan
.
getChildrenList
().
isEmpty
())
{
pathlist
.
add
(
path
);
pathlist
.
add
(
path
);
...
@@ -107,87 +66,4 @@ public class Nloc {
...
@@ -107,87 +66,4 @@ public class Nloc {
}
}
}
}
public
static
List
<
Channel
>
getNloc0
()
{
Channel
chan0
=
new
Channel
(
6
,
6
);
Channel
chan1
=
new
Channel
(
8
,
8
);
Channel
chan2
=
new
Channel
(
9
,
9
);
Channel
chan3
=
new
Channel
(
11
,
12
);
Channel
chan4
=
new
Channel
(
19
,
21
);
Channel
chan5
=
new
Channel
(
5
,
5
);
Channel
chan6
=
new
Channel
(
8
,
8
);
Channel
chan7
=
new
Channel
(
9
,
10
);
Channel
chan8
=
new
Channel
(
25
,
28
);
Module
m0
=
new
Module
(
"m0"
,
22
,
10
);
Module
m1
=
new
Module
(
"m1"
,
10
,
10
);
Pump
p0
=
new
Pump
();
Sink
s0
=
new
Sink
();
List
<
Channel
>
chanlist
=
Arrays
.
asList
(
chan0
,
chan1
,
chan2
,
chan3
,
chan4
,
chan5
,
chan6
,
chan7
,
chan8
,
m0
,
m1
,
p0
,
s0
);
p0
.
addChild
(
chan0
);
chan0
.
addChild
(
chan1
);
chan1
.
addChild
(
chan2
);
chan1
.
addChild
(
chan3
);
chan2
.
addChild
(
chan4
);
chan3
.
addChild
(
chan5
);
chan5
.
addChild
(
m0
);
m0
.
addChild
(
chan6
);
chan4
.
addChild
(
chan7
);
chan6
.
addChild
(
chan7
);
chan7
.
addChild
(
m1
);
m1
.
addChild
(
chan8
);
chan8
.
addChild
(
s0
);
return
chanlist
;
}
public
static
List
<
Channel
>
getNloc3
()
{
Channel
chan0
=
new
Channel
(
6
,
6
);
Channel
chan1
=
new
Channel
(
8
,
8
);
Channel
chan2
=
new
Channel
(
9
,
9
);
Channel
chan3
=
new
Channel
(
11
,
12
);
Channel
chan4
=
new
Channel
(
19
,
21
);
Channel
chan5
=
new
Channel
(
5
,
5
);
Channel
chan6
=
new
Channel
(
8
,
8
);
Channel
chan7
=
new
Channel
(
9
,
10
);
Channel
chan8
=
new
Channel
(
25
,
28
);
Channel
chan9
=
new
Channel
(
25
,
28
);
Channel
chan10
=
new
Channel
(
25
,
28
);
Module
m0
=
new
Module
(
"m0"
,
22
,
10
);
Module
m1
=
new
Module
(
"m1"
,
10
,
10
);
Module
m2
=
new
Module
(
"m2"
,
22
,
10
);
Module
m3
=
new
Module
(
"m3"
,
10
,
10
);
Pump
p0
=
new
Pump
();
Sink
s0
=
new
Sink
();
List
<
Channel
>
chanlist
=
Arrays
.
asList
(
chan0
,
chan1
,
chan2
,
chan3
,
chan4
,
chan5
,
chan6
,
chan7
,
chan8
,
chan9
,
chan10
,
m0
,
m1
,
m2
,
m3
,
p0
,
s0
);
p0
.
addChild
(
chan0
);
chan0
.
addChild
(
chan1
);
chan0
.
addChild
(
chan2
);
chan1
.
addChild
(
m0
);
m0
.
addChild
(
chan3
);
chan3
.
addChild
(
chan5
);
chan2
.
addChild
(
m1
);
m1
.
addChild
(
chan4
);
chan4
.
addChild
(
chan5
);
chan5
.
addChild
(
chan6
);
chan5
.
addChild
(
chan7
);
chan6
.
addChild
(
m2
);
chan7
.
addChild
(
m3
);
m2
.
addChild
(
chan8
);
m3
.
addChild
(
chan9
);
chan8
.
addChild
(
chan10
);
chan9
.
addChild
(
chan10
);
chan10
.
addChild
(
s0
);
return
chanlist
;
}
}
}
This diff is collapsed.
Click to expand it.
src/TestNloc.java
0 → 100644
+
126
−
0
View file @
36d565cc
package
nloc
;
public
class
TestNloc
{
public
static
void
main
(
String
[]
args
)
{
List
<
Channel
>
chanlist
=
getNloc0
();
Channel
p0
=
chanlist
.
get
(
chanlist
.
size
()
-
2
);
List
<
Channel
>
mod
=
getModulesByName
(
Arrays
.
asList
(
"m1"
,
"m2"
),
chanlist
);
List
<
List
<
Channel
>>
pathlist
=
getAllPaths
(
p0
,
new
ArrayList
<
Channel
>());
printPaths
(
pathlist
);
List
<
Channel
>
desiredPath
=
getDesiredPath
(
mod
,
pathlist
);
System
.
out
.
println
(
"Desired Path:"
);
if
(
desiredPath
.
isEmpty
())
{
System
.
out
.
println
(
"No such Path!"
);
}
else
{
printPath
(
desiredPath
);
}
System
.
out
.
println
(
"Number of Droplets needed: "
+
getNumberOfDroplets
(
desiredPath
));
}
public
static
void
printPath
(
List
<
Channel
>
path
)
{
for
(
Channel
ch
:
path
)
{
System
.
out
.
print
(
"ID: "
+
ch
.
getID
()
+
" "
);
}
System
.
out
.
println
(
""
);
}
public
static
void
printPaths
(
List
<
List
<
Channel
>>
pathlist
)
{
System
.
out
.
println
(
"Number of paths found: "
+
pathlist
.
size
());
for
(
List
<
Channel
>
p
:
pathlist
)
{
printPath
(
p
);
}
}
public
static
List
<
Channel
>
getNloc0
()
{
Channel
chan0
=
new
Channel
(
6
,
6
);
Channel
chan1
=
new
Channel
(
8
,
8
);
Channel
chan2
=
new
Channel
(
9
,
9
);
Channel
chan3
=
new
Channel
(
11
,
12
);
Channel
chan4
=
new
Channel
(
19
,
21
);
Channel
chan5
=
new
Channel
(
5
,
5
);
Channel
chan6
=
new
Channel
(
8
,
8
);
Channel
chan7
=
new
Channel
(
9
,
10
);
Channel
chan8
=
new
Channel
(
25
,
28
);
Module
m0
=
new
Module
(
"m0"
,
22
,
10
);
Module
m1
=
new
Module
(
"m1"
,
10
,
10
);
Pump
p0
=
new
Pump
();
Sink
s0
=
new
Sink
();
List
<
Channel
>
chanlist
=
Arrays
.
asList
(
chan0
,
chan1
,
chan2
,
chan3
,
chan4
,
chan5
,
chan6
,
chan7
,
chan8
,
m0
,
m1
,
p0
,
s0
);
p0
.
addChild
(
chan0
);
chan0
.
addChild
(
chan1
);
chan1
.
addChild
(
chan2
);
chan1
.
addChild
(
chan3
);
chan2
.
addChild
(
chan4
);
chan3
.
addChild
(
chan5
);
chan5
.
addChild
(
m0
);
m0
.
addChild
(
chan6
);
chan4
.
addChild
(
chan7
);
chan6
.
addChild
(
chan7
);
chan7
.
addChild
(
m1
);
m1
.
addChild
(
chan8
);
chan8
.
addChild
(
s0
);
return
chanlist
;
}
public
static
List
<
Channel
>
getNloc3
()
{
Channel
chan0
=
new
Channel
(
6
,
6
);
Channel
chan1
=
new
Channel
(
8
,
8
);
Channel
chan2
=
new
Channel
(
9
,
9
);
Channel
chan3
=
new
Channel
(
11
,
12
);
Channel
chan4
=
new
Channel
(
19
,
21
);
Channel
chan5
=
new
Channel
(
5
,
5
);
Channel
chan6
=
new
Channel
(
8
,
8
);
Channel
chan7
=
new
Channel
(
9
,
10
);
Channel
chan8
=
new
Channel
(
25
,
28
);
Channel
chan9
=
new
Channel
(
25
,
28
);
Channel
chan10
=
new
Channel
(
25
,
28
);
Module
m0
=
new
Module
(
"m0"
,
22
,
10
);
Module
m1
=
new
Module
(
"m1"
,
10
,
10
);
Module
m2
=
new
Module
(
"m2"
,
22
,
10
);
Module
m3
=
new
Module
(
"m3"
,
10
,
10
);
Pump
p0
=
new
Pump
();
Sink
s0
=
new
Sink
();
List
<
Channel
>
chanlist
=
Arrays
.
asList
(
chan0
,
chan1
,
chan2
,
chan3
,
chan4
,
chan5
,
chan6
,
chan7
,
chan8
,
chan9
,
chan10
,
m0
,
m1
,
m2
,
m3
,
p0
,
s0
);
p0
.
addChild
(
chan0
);
chan0
.
addChild
(
chan1
);
chan0
.
addChild
(
chan2
);
chan1
.
addChild
(
m0
);
m0
.
addChild
(
chan3
);
chan3
.
addChild
(
chan5
);
chan2
.
addChild
(
m1
);
m1
.
addChild
(
chan4
);
chan4
.
addChild
(
chan5
);
chan5
.
addChild
(
chan6
);
chan5
.
addChild
(
chan7
);
chan6
.
addChild
(
m2
);
chan7
.
addChild
(
m3
);
m2
.
addChild
(
chan8
);
m3
.
addChild
(
chan9
);
chan8
.
addChild
(
chan10
);
chan9
.
addChild
(
chan10
);
chan10
.
addChild
(
s0
);
return
chanlist
;
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment