File indexing completed on 2026-06-04 07:59:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 set -e
0019
0020 GDML="$OPTICKS_HOME/tests/geom/opticks_two_spheres.gdml"
0021 MAC="$OPTICKS_HOME/tests/run.mac"
0022 SEED=42
0023 RES=U4Mesh__NumberOfRotationSteps_entityType_G4Orb=12
0024 hits(){ awk '/Opticks: NumHits:/ {print $NF}'; }
0025
0026 ANA=$(GPURaytrace -g "$GDML" -m "$MAC" -s "$SEED" 2>&1 | hits)
0027 A=$( env "$RES" stree__force_triangulate_solid=WATER_A_solid GPURaytrace -g "$GDML" -m "$MAC" -s "$SEED" 2>&1 | hits)
0028 B=$( env "$RES" stree__force_triangulate_solid=WATER_B_solid GPURaytrace -g "$GDML" -m "$MAC" -s "$SEED" 2>&1 | hits)
0029 AB=$(env "$RES" stree__force_triangulate_solid=WATER_A_solid,WATER_B_solid GPURaytrace -g "$GDML" -m "$MAC" -s "$SEED" 2>&1 | hits)
0030
0031 echo "analytic=$ANA forceA=$A forceB=$B forceAB=$AB"
0032 for v in "$ANA" "$A" "$B" "$AB"; do
0033 [ -n "$v" ] || { echo "FAILED: missing hit count (analytic=$ANA A=$A B=$B AB=$AB)"; exit 1; }
0034 done
0035
0036 OK=$(awk -v ana="$ANA" -v a="$A" -v b="$B" -v ab="$AB" \
0037 'BEGIN{ print (ana>a && ana>b && a>ab && b>ab) ? 1 : 0 }')
0038 [ "$OK" = "1" ] || { echo "FAILED: expected analytic > forceA,forceB > forceA,B (selective triangulation)"; exit 1; }
0039 echo "PASSED"