@@ -172,6 +172,29 @@ public void CorrectlyReadsCMEGroupFutureEarlyCloses(string futureTicker, string
172172 }
173173 }
174174
175+ [ TestCase ( "BIO" , Market . CME , true ) ]
176+ [ TestCase ( "5YY" , Market . CBOT , true ) ]
177+ [ TestCase ( "6E" , Market . CME , true ) ]
178+ [ TestCase ( "BTC" , Market . CME , true ) ]
179+ [ TestCase ( "A8O" , Market . NYMEX , true ) ]
180+ [ TestCase ( "PAM" , Market . NYMEX , true ) ]
181+ [ TestCase ( "ZC" , Market . CBOT , false ) ]
182+ [ TestCase ( "LBR" , Market . CME , false ) ]
183+ [ TestCase ( "HE" , Market . CME , false ) ]
184+ [ TestCase ( "DY" , Market . CME , false ) ]
185+ [ TestCase ( "YO" , Market . NYMEX , true ) ]
186+ public void CorrectlyReadsCMEGroupFutureBankHolidays ( string futureTicker , string market , bool isBankHoliday )
187+ {
188+ var provider = MarketHoursDatabase . FromDataFolder ( ) ;
189+ var ticker = OptionSymbol . MapToUnderlying ( futureTicker , SecurityType . Future ) ;
190+ var future = Symbol . Create ( ticker , SecurityType . Future , market ) ;
191+
192+ var futureEntry = provider . GetEntry ( market , ticker , future . SecurityType ) ;
193+ var bankHolidays = futureEntry . ExchangeHours . BankHolidays ;
194+ var bankHoliday = new DateTime ( 2025 , 11 , 27 ) ;
195+ Assert . AreEqual ( isBankHoliday , bankHolidays . Contains ( bankHoliday ) ) ;
196+ }
197+
175198 [ TestCase ( "2YY" , Market . CBOT , true ) ]
176199 [ TestCase ( "TN" , Market . CBOT , true ) ]
177200 [ TestCase ( "6A" , Market . CME , true ) ]
0 commit comments