void TestEnterSweeperChance_TwoArb(MonitorEnter_BondArb_Accessor me) { // 두 pair 모두 0으로 값을 설정한 후 테스트한다. BondPair housingBondPair = null; RawMarketData rmdHousingNormal = null; RawMarketData rmdHousingSmall = null; SetHousingBondPairAndRmds(ref housingBondPair, ref rmdHousingNormal, ref rmdHousingSmall); BondPair doosanBondPair = null; RawMarketData rmdDoosanNormal = null; RawMarketData rmdDoosanRetail = null; SetCreditBondPairAndRmds(ref doosanBondPair, ref rmdDoosanNormal, ref rmdDoosanRetail); SetAsZeroRMD(ref rmdHousingNormal); SetAsZeroRMD(ref rmdHousingSmall); SetAsZeroRMD(ref rmdDoosanNormal); SetAsZeroRMD(ref rmdDoosanRetail); me.BeforeEnterSweeperChance(); Assert.AreEqual(false, me.EnterSweeperChance(100)); Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 0); // 두개 모두 arb가능 SetImmeLongPart(rmdDoosanNormal, 100 * CommonConst._1_000_000, 5000); SetImmeShortPart(rmdDoosanRetail, 100 * CommonConst._1_000_000, 15000); SetImmeLongPart(rmdHousingNormal, 100 * CommonConst._1_000_000, 5000); SetImmeShortPart(rmdHousingSmall, 100 * CommonConst._1_000_000, 15000); me.BeforeEnterSweeperChance(); Assert.AreEqual(true, me.EnterSweeperChance(100)); Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 2); Unittest_BondArbUtil.ClearBondAccount(me._bondAccount); Unittest_BondArbUtil.ClearSweeperCollection(me); }
void TestEnterSweeperChance_NoArb(MonitorEnter_BondArb_Accessor me) { Assert.AreEqual(POrderBidAskCountManager.Ins().IsDirty(), false); Assert.AreEqual(POrder_UnittestUtil.IsPOrderCommonResourceDirty(), false); // 1. 두 pair 모두 0이므로 no arb BondPair housingBondPair = null; RawMarketData rmdHousingNormal = null; RawMarketData rmdHousingSmall = null; SetHousingBondPairAndRmds(ref housingBondPair, ref rmdHousingNormal, ref rmdHousingSmall); BondPair doosanBondPair = null; RawMarketData rmdDoosanNormal = null; RawMarketData rmdDoosanRetail = null; SetCreditBondPairAndRmds(ref doosanBondPair, ref rmdDoosanNormal, ref rmdDoosanRetail); SetAsZeroRMD(ref rmdHousingNormal); SetAsZeroRMD(ref rmdHousingSmall); SetAsZeroRMD(ref rmdDoosanNormal); SetAsZeroRMD(ref rmdDoosanRetail); me.BeforeEnterSweeperChance(); Assert.AreEqual(false, me.EnterSweeperChance(100)); Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 0); // 2. arb이 성립하는지 본 뒤 EnterSweeperChance(0)이므로 no arb SetImmeLongPart(rmdDoosanNormal, 100 * CommonConst._1_000, 5000); SetImmeShortPart(rmdDoosanRetail, 100 * CommonConst._1_000, 15000); me.BeforeEnterSweeperChance(); Assert.AreEqual(true, me.EnterSweeperChance(100)); Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 1); Unittest_BondArbUtil.ClearBondAccount(me._bondAccount); Unittest_BondArbUtil.ClearSweeperCollection(me); me.BeforeEnterSweeperChance(); const int kZero = 0; Assert.AreEqual(false, me.EnterSweeperChance(kZero)); Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 0); }