Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Analyst WebApp
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Repository analytics
Insights
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
fidentis
Analyst WebApp
Commits
ec0abc64
There was an error fetching the commit references. Please try again later.
Commit
ec0abc64
authored
3 years ago
by
Daniel Schramm
Browse files
Options
Downloads
Patches
Plain Diff
Test infrastructure for prioritized-HD-HumanFace visitor prepared
parent
cd8f6dce
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Comparison/src/test/java/cz/fidentis/analyst/visitors/face/HausdorffDistancePrioritizedTest.java
+145
-0
145 additions, 0 deletions
...alyst/visitors/face/HausdorffDistancePrioritizedTest.java
with
145 additions
and
0 deletions
Comparison/src/test/java/cz/fidentis/analyst/visitors/face/HausdorffDistancePrioritizedTest.java
0 → 100644
+
145
−
0
View file @
ec0abc64
package
cz.fidentis.analyst.visitors.face
;
import
cz.fidentis.analyst.face.HumanFace
;
import
cz.fidentis.analyst.feature.FeaturePoint
;
import
cz.fidentis.analyst.feature.FeaturePointType
;
import
cz.fidentis.analyst.mesh.core.MeshFacet
;
import
cz.fidentis.analyst.mesh.core.MeshModel
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
javax.vecmath.Point3d
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
public
class
HausdorffDistancePrioritizedTest
{
private
static
final
double
DELTA
=
1
e
-
11
;
private
static
final
File
BOY
=
new
File
(
"src/test/resources/cz/fidentis/analyst/average_boy_17-20.obj"
);
private
static
HumanFace
getHumanFace
(
List
<
MeshFacet
>
facets
,
List
<
Point3d
>
featurePoints
,
List
<
FeaturePointType
>
featurePointTypes
)
throws
IOException
{
assertEquals
(
featurePoints
.
size
(),
featurePointTypes
.
size
());
final
HumanFace
face
=
new
HumanFace
(
BOY
);
final
MeshModel
model
=
new
MeshModel
();
for
(
final
MeshFacet
facet:
facets
)
{
model
.
addFacet
(
facet
);
}
face
.
setMeshModel
(
model
);
final
List
<
FeaturePoint
>
featurePointsList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
featurePoints
.
size
();
i
++)
{
final
Point3d
fpCoordinates
=
featurePoints
.
get
(
i
);
featurePointsList
.
add
(
new
FeaturePoint
(
fpCoordinates
.
x
,
fpCoordinates
.
y
,
fpCoordinates
.
z
,
featurePointTypes
.
get
(
i
)));
}
face
.
setFeaturePoints
(
featurePointsList
);
return
face
;
}
protected
void
performTest
(
HumanFace
face
,
Map
<
FeaturePointType
,
Map
<
MeshFacet
,
List
<
Double
>>>
expectedPriorities
,
Map
<
FeaturePointType
,
Map
<
MeshFacet
,
Double
>>
expectedFeaturePointWeights
,
Map
<
MeshFacet
,
List
<
Double
>>
expectedMergedPriorities
,
HausdorffDistancePrioritized
visitor
)
{
final
Set
<
FeaturePointType
>
featurePointTypes
=
visitor
.
getFeaturePointTypes
();
final
List
<
FeaturePoint
>
faceFeaturePoints
=
face
.
getFeaturePoints
();
featurePointTypes
.
forEach
(
fpType
->
assertTrue
(
faceFeaturePoints
.
stream
()
.
anyMatch
(
fPoint
->
fPoint
.
getFeaturePointType
().
equals
(
fpType
))));
face
.
accept
(
visitor
);
final
List
<
MeshFacet
>
faceFacets
=
face
.
getMeshModel
().
getFacets
();
// ---------------------------------------------------------------------
// Test priorities
// ---------------------------------------------------------------------
final
Map
<
HumanFace
,
Map
<
FeaturePointType
,
Map
<
MeshFacet
,
List
<
Double
>>>>
priorities
=
visitor
.
getPriorities
();
assertTrue
(
priorities
.
containsKey
(
face
));
final
Map
<
FeaturePointType
,
Map
<
MeshFacet
,
List
<
Double
>>>
facePriorities
=
priorities
.
get
(
face
);
assertEquals
(
featurePointTypes
.
size
(),
facePriorities
.
size
());
for
(
final
FeaturePointType
fpType:
featurePointTypes
)
{
assertTrue
(
facePriorities
.
containsKey
(
fpType
));
final
Map
<
MeshFacet
,
List
<
Double
>>
facePrioritiesMap
=
facePriorities
.
get
(
fpType
);
final
Map
<
MeshFacet
,
List
<
Double
>>
expectedPrioritiesMap
=
expectedPriorities
.
get
(
fpType
);
assertEquals
(
faceFacets
.
size
(),
facePrioritiesMap
.
size
());
for
(
final
MeshFacet
facet:
faceFacets
)
{
assertTrue
(
facePrioritiesMap
.
containsKey
(
facet
));
final
List
<
Double
>
facePrioritiesList
=
facePrioritiesMap
.
get
(
facet
);
final
List
<
Double
>
expectedPrioritiesList
=
expectedPrioritiesMap
.
get
(
facet
);
assertEquals
(
expectedPrioritiesList
.
size
(),
facePrioritiesList
.
size
());
for
(
int
i
=
0
;
i
<
expectedPrioritiesList
.
size
();
i
++)
{
assertEquals
(
expectedPrioritiesList
.
get
(
i
),
facePrioritiesList
.
get
(
i
),
DELTA
);
}
}
}
// ---------------------------------------------------------------------
// Test feature point weights
// ---------------------------------------------------------------------
final
Map
<
HumanFace
,
Map
<
FeaturePointType
,
Map
<
MeshFacet
,
Double
>>>
featurePointWeights
=
visitor
.
getFeaturePointWeights
();
assertTrue
(
featurePointWeights
.
containsKey
(
face
));
final
Map
<
FeaturePointType
,
Map
<
MeshFacet
,
Double
>>
faceFeaturePointWeights
=
featurePointWeights
.
get
(
face
);
assertEquals
(
featurePointTypes
.
size
(),
faceFeaturePointWeights
.
size
());
for
(
final
FeaturePointType
fpType:
featurePointTypes
)
{
assertTrue
(
faceFeaturePointWeights
.
containsKey
(
fpType
));
final
Map
<
MeshFacet
,
Double
>
faceFPWeightsMap
=
faceFeaturePointWeights
.
get
(
fpType
);
final
Map
<
MeshFacet
,
Double
>
expectedFPWeightsMap
=
expectedFeaturePointWeights
.
get
(
fpType
);
assertEquals
(
faceFacets
.
size
(),
faceFPWeightsMap
.
size
());
for
(
final
MeshFacet
facet:
faceFacets
)
{
assertTrue
(
faceFPWeightsMap
.
containsKey
(
facet
));
final
double
expectedWeightedDistance
=
expectedFPWeightsMap
.
get
(
facet
);
final
double
actualWeightedDistance
=
faceFPWeightsMap
.
get
(
facet
);
assertEquals
(
expectedWeightedDistance
,
actualWeightedDistance
,
DELTA
);
}
}
// ---------------------------------------------------------------------
// Test merged priorities
// ---------------------------------------------------------------------
final
Map
<
HumanFace
,
Map
<
MeshFacet
,
List
<
Double
>>>
mergedPriorities
=
visitor
.
getMergedPriorities
();
assertTrue
(
mergedPriorities
.
containsKey
(
face
));
final
Map
<
MeshFacet
,
List
<
Double
>>
faceMergedPriorities
=
mergedPriorities
.
get
(
face
);
assertEquals
(
faceFacets
.
size
(),
faceMergedPriorities
.
size
());
for
(
final
MeshFacet
facet:
faceFacets
)
{
assertTrue
(
faceMergedPriorities
.
containsKey
(
facet
));
final
List
<
Double
>
faceMergedPrioritiesList
=
faceMergedPriorities
.
get
(
facet
);
final
List
<
Double
>
expectedMergedPrioritiesList
=
expectedMergedPriorities
.
get
(
facet
);
assertEquals
(
expectedMergedPrioritiesList
.
size
(),
faceMergedPrioritiesList
.
size
());
for
(
int
i
=
0
;
i
<
expectedMergedPrioritiesList
.
size
();
i
++)
{
assertEquals
(
expectedMergedPrioritiesList
.
get
(
i
),
faceMergedPrioritiesList
.
get
(
i
),
DELTA
);
}
}
}
}
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