@@ -331,7 +331,7 @@ func TestShapeConsistency(t *testing.T) {
331331 sphere .GetContactFeature (dir , & features , & featureCount )
332332
333333 // Pour une sphère, GetContactFeature doit retourner exactement le point de support
334- if len ( features ) != 1 || ! vec3Equal (sphereSupport , features [0 ], 1e-9 ) {
334+ if featureCount != 1 || ! vec3Equal (sphereSupport , features [0 ], 1e-9 ) {
335335 t .Errorf ("Sphere support/contact feature mismatch: support=%v, feature=%v" , sphereSupport , features )
336336 }
337337 }
@@ -461,67 +461,6 @@ func TestSphereComputeAABB(t *testing.T) {
461461 }
462462}
463463
464- func TestPlaneComputeAABB (t * testing.T ) {
465- tests := []struct {
466- name string
467- plane * Plane
468- transform Transform
469- checkInfinite bool // vérifier les dimensions infinies
470- }{
471- {
472- name : "horizontal plane (Y-up)" ,
473- plane : & Plane {Normal : mgl64.Vec3 {0 , 1 , 0 }, Distance : 0 },
474- transform : Transform {
475- Position : mgl64.Vec3 {0 , 0 , 0 },
476- Rotation : mgl64 .QuatIdent (),
477- },
478- checkInfinite : true ,
479- },
480- {
481- name : "vertical plane (X-normal)" ,
482- plane : & Plane {Normal : mgl64.Vec3 {1 , 0 , 0 }, Distance : 5 },
483- transform : Transform {
484- Position : mgl64.Vec3 {0 , 0 , 0 },
485- Rotation : mgl64 .QuatIdent (),
486- },
487- checkInfinite : true ,
488- },
489- {
490- name : "diagonal plane" ,
491- plane : & Plane {Normal : mgl64.Vec3 {1 , 1 , 1 }.Normalize (), Distance : - 2 },
492- transform : Transform {
493- Position : mgl64.Vec3 {10 , 20 , 30 },
494- Rotation : mgl64 .QuatIdent (),
495- },
496- checkInfinite : false ,
497- },
498- }
499-
500- for _ , tt := range tests {
501- t .Run (tt .name , func (t * testing.T ) {
502- tt .plane .ComputeAABB (tt .transform )
503- aabb := tt .plane .GetAABB ()
504-
505- // Vérification de base - l'AABB doit être valide
506- if aabb .Min [0 ] > aabb .Max [0 ] || aabb .Min [1 ] > aabb .Max [1 ] || aabb .Min [2 ] > aabb .Max [2 ] {
507- t .Errorf ("Invalid AABB: Min %v > Max %v" , aabb .Min , aabb .Max )
508- }
509-
510- // Si on doit vérifier les dimensions infinies
511- if tt .checkInfinite {
512- const infinity = 1e10
513- // Pour un plan horizontal, X et Z doivent être "infinis"
514- if math .Abs (aabb .Min [0 ]+ infinity ) > 1e6 || math .Abs (aabb .Max [0 ]- infinity ) > 1e6 {
515- t .Errorf ("X dimension not infinite: Min=%v, Max=%v" , aabb .Min [0 ], aabb .Max [0 ])
516- }
517- if math .Abs (aabb .Min [2 ]+ infinity ) > 1e6 || math .Abs (aabb .Max [2 ]- infinity ) > 1e6 {
518- t .Errorf ("Z dimension not infinite: Min=%v, Max=%v" , aabb .Min [2 ], aabb .Max [2 ])
519- }
520- }
521- })
522- }
523- }
524-
525464func TestGetTangentBasis (t * testing.T ) {
526465 tests := []struct {
527466 name string
0 commit comments