@@ -194,6 +194,60 @@ public async Task PropagateSpacecraft()
194194 Assert . Equal ( 2281.6927232547719 , summary . SpacecraftSummaries . First ( ) . FuelConsumption , 3 ) ;
195195 }
196196
197+ [ Fact ]
198+ public async Task PropagateSpacecraftWithAttitudeOnly ( )
199+ {
200+ DateTime start = new DateTime ( 2024 , 7 , 30 , 13 , 48 , 30 , DateTimeKind . Utc ) ;
201+ DateTime end = new DateTime ( 2024 , 7 , 31 , 13 , 48 , 33 , DateTimeKind . Utc ) ;
202+
203+ Astrodynamics . Mission . Mission mission = new Astrodynamics . Mission . Mission ( "mission02" ) ;
204+ Scenario scenario = new Scenario ( "scn1" , mission , new Window ( start , end ) ) ;
205+ scenario . AddCelestialItem ( TestHelpers . EarthAtJ2000 ) ;
206+
207+ //Define parking orbit
208+ StateVector parkingOrbit = new StateVector (
209+ new Vector3 ( 6800000.0 , 0.0 , 0.0 ) ,
210+ new Vector3 ( 0.0 , 8000.0 , 0.0 ) , TestHelpers . EarthAtJ2000 ,
211+ start , Frames . Frame . ICRF ) ;
212+
213+ //Create and configure spacecraft
214+ Clock clock = new Clock ( "clk1" , 65536 ) ;
215+ Spacecraft spacecraft = new Spacecraft ( - 1783 , "DRAGONFLY3" , 1000.0 , 10000.0 , clock , parkingOrbit ) ;
216+
217+ FuelTank fuelTank = new FuelTank ( "ft1" , "model1" , "sn1" , 9000.0 , 9000.0 ) ;
218+ Engine engine = new Engine ( "engine1" , "model1" , "sn1" , 450.0 , 50.0 , fuelTank ) ;
219+ spacecraft . AddFuelTank ( fuelTank ) ;
220+ spacecraft . AddEngine ( engine ) ;
221+
222+ var progradeAttitude = new ProgradeAttitude ( TestHelpers . EarthAtJ2000 , DateTime . MinValue , TimeSpan . Zero , engine ) ;
223+ spacecraft . SetStandbyManeuver ( progradeAttitude ) ;
224+
225+ scenario . AddSpacecraft ( spacecraft ) ;
226+
227+ var summary = await scenario . SimulateAsync ( Constants . OutputPath , false , false , TimeSpan . FromSeconds ( 1.0 ) ) ;
228+
229+ // Read maneuver results
230+ Assert . Equal ( "2024-07-30T13:49:39.1839998 (TDB)" , progradeAttitude . ManeuverWindow ? . StartDate . ToFormattedString ( ) ) ;
231+ Assert . Equal ( "2024-07-30T13:49:39.1839998 (TDB)" , progradeAttitude . ManeuverWindow ? . EndDate . ToFormattedString ( ) ) ;
232+ Assert . Equal ( "2024-07-30T13:49:39.1839998 (TDB)" , progradeAttitude . ThrustWindow ? . StartDate . ToFormattedString ( ) ) ;
233+ Assert . Equal ( "2024-07-30T13:49:39.1839998 (TDB)" , progradeAttitude . ThrustWindow ? . EndDate . ToFormattedString ( ) ) ;
234+ Assert . Equal ( 0.0 , progradeAttitude . ThrustWindow . Value . Length . TotalSeconds , 3 ) ;
235+
236+ Assert . Equal ( 0.0 , progradeAttitude . FuelBurned , 0 ) ;
237+
238+
239+ Assert . Equal ( scenario . Window , summary . Window ) ;
240+ Assert . Single ( summary . SpacecraftSummaries ) ;
241+ var maneuverWindow = summary . SpacecraftSummaries . First ( ) . ManeuverWindow ;
242+ if ( maneuverWindow != null )
243+ {
244+ Assert . Equal ( DateTime . Parse ( "2024-07-30T13:49:39.1839998" ) , maneuverWindow . Value . StartDate , TimeSpan . FromMilliseconds ( 1 ) ) ;
245+ Assert . Equal ( DateTime . Parse ( "2024-07-30T13:49:39.1839998" ) , maneuverWindow . Value . EndDate , TimeSpan . FromMilliseconds ( 1 ) ) ;
246+ }
247+
248+ Assert . Equal ( 0.0 , summary . SpacecraftSummaries . First ( ) . FuelConsumption , 3 ) ;
249+ }
250+
197251 [ Fact ]
198252 public async Task PropagateSpacecraftFromTLE ( )
199253 {
@@ -221,10 +275,10 @@ public async Task PropagateSpacecraftFromTLE()
221275
222276 Assert . Equal (
223277 new StateVector ( new Vector3 ( - 2194696.277452762 , 6520464.634645089 , - 8851312.715000605 ) , new Vector3 ( - 4855.389207947987 , 5010.690350306962 , 2785.4343115066577 ) ,
224- site , start , Frames . Frame . ICRF ) , initialSV ) ;
278+ site , start , Frames . Frame . ICRF ) , initialSV . ToStateVector ( ) , TestHelpers . StateVectorComparer ) ;
225279 Assert . Equal (
226- new StateVector ( new Vector3 ( - 8877878.268430736 , 2497878.6999986176 , 1044081.578034049 ) , new Vector3 ( 969.7356590081705 , - 7707.414993293412 , 1627.9865491886271 ) ,
227- site , end , Frames . Frame . ICRF ) , endSV ) ;
280+ new StateVector ( new Vector3 ( - 8877878.268430738 , 2497878.6999986176 , 1044081.578034049 ) , new Vector3 ( 969.7356590081705 , - 7707.414993293412 , 1627.9865491886271 ) ,
281+ site , end , Frames . Frame . ICRF ) , endSV . ToStateVector ( ) , TestHelpers . StateVectorComparer ) ;
228282 }
229283
230284 [ Fact ]
0 commit comments