@@ -45,7 +45,7 @@ final class Pose3Tests: XCTestCase {
4545 let prior_factor = PriorFactor ( 0 , t1)
4646
4747 var vals = Values ( )
48- vals. insert ( 0 , AnyDifferentiable ( t1 ) ) // should be identity matrix
48+ vals. insert ( 0 , t1 ) // should be identity matrix
4949 // Change this to t2, still zero in upper left block
5050
5151 let actual = prior_factor. linearize ( vals) . jacobians [ 0 ]
@@ -74,7 +74,7 @@ final class Pose3Tests: XCTestCase {
7474 let gti = Vector3 ( radius * cos( theta) , radius * sin( theta) , 0 )
7575 let oRi = Rot3 . fromTangent ( Vector3 ( 0 , 0 , - theta) ) // negative yaw goes counterclockwise, with Z down !
7676 let gTi = Pose3 ( gRo * oRi, gti)
77- values. insert ( key, AnyDifferentiable ( gTi) )
77+ values. insert ( key, gTi)
7878 theta = theta + dtheta
7979 }
8080 return values
@@ -83,8 +83,8 @@ final class Pose3Tests: XCTestCase {
8383 func testGtsamPose3SLAMExample( ) {
8484 // Create a hexagon of poses
8585 let hexagon = circlePose3 ( numPoses: 6 , radius: 1.0 )
86- let p0 = hexagon [ 0 ] . baseAs ( Pose3 . self)
87- let p1 = hexagon [ 1 ] . baseAs ( Pose3 . self)
86+ let p0 = hexagon [ 0 , as : Pose3 . self]
87+ let p1 = hexagon [ 1 , as : Pose3 . self]
8888
8989 // create a Pose graph with one equality constraint and one measurement
9090 var fg = NonlinearFactorGraph ( )
@@ -101,12 +101,12 @@ final class Pose3Tests: XCTestCase {
101101 // Create initial config
102102 var val = Values ( )
103103 let s = 0.10
104- val. insert ( 0 , AnyDifferentiable ( p0 ) )
105- val. insert ( 1 , AnyDifferentiable ( hexagon [ 1 ] . baseAs ( Pose3 . self) . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) ) )
106- val. insert ( 2 , AnyDifferentiable ( hexagon [ 2 ] . baseAs ( Pose3 . self) . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) ) )
107- val. insert ( 3 , AnyDifferentiable ( hexagon [ 3 ] . baseAs ( Pose3 . self) . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) ) )
108- val. insert ( 4 , AnyDifferentiable ( hexagon [ 4 ] . baseAs ( Pose3 . self) . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) ) )
109- val. insert ( 5 , AnyDifferentiable ( hexagon [ 5 ] . baseAs ( Pose3 . self) . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) ) )
104+ val. insert ( 0 , p0 )
105+ val. insert ( 1 , hexagon [ 1 , as : Pose3 . self] . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) )
106+ val. insert ( 2 , hexagon [ 2 , as : Pose3 . self] . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) )
107+ val. insert ( 3 , hexagon [ 3 , as : Pose3 . self] . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) )
108+ val. insert ( 4 , hexagon [ 4 , as : Pose3 . self] . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) )
109+ val. insert ( 5 , hexagon [ 5 , as : Pose3 . self] . global ( Vector6 ( s * Tensor < Double > ( randomNormal: [ 6 ] ) ) ) )
110110
111111 // optimize
112112 for _ in 0 ..< 16 {
@@ -122,15 +122,10 @@ final class Pose3Tests: XCTestCase {
122122
123123 optimizer. optimize ( gfg: gfg, initial: & dx)
124124
125-
126- for i in 0 ..< 6 {
127- var p = val [ i] . baseAs ( Pose3 . self)
128- p. move ( along: Vector6 ( dx [ i] ) )
129- val [ i] = AnyDifferentiable ( p)
130- }
125+ val. move ( along: dx)
131126 }
132127
133- let pose_1 = val [ 1 ] . baseAs ( Pose3 . self)
128+ let pose_1 = val [ 1 , as : Pose3 . self]
134129 assertAllKeyPathEqual ( pose_1, p1, accuracy: 1e-2 )
135130 }
136131}
0 commit comments