public bool IsSimilar(TestValue other, int diffPercent) { if (dic.Count != other.dic.Count) { return(false); } foreach (string key in dic.Keys) { if (!other.dic.ContainsKey(key)) { return(false); } if (dic[key] != other.dic[key]) { try { double v = GetDouble(dic[key]); double v1 = GetDouble(other.dic[key]); if (Math.Abs(v1 - v) / Math.Abs(v) > diffPercent / 100) { return(false); } } catch (Exception) { return(false); } } } return(true); }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); //tv.AddField("动作", fd.Player.state.ActionStateId); //tv.AddField("移动", fd.Player.state.MovementStateId); tv.AddField("动作状态标识", fd.Player.state.ActionStateId); //动作 tv.AddField("动作转换标识", fd.Player.state.ActionTransitionId); tv.AddField("移动状态标识", fd.Player.state.MovementStateId); //移动 tv.AddField("移动转换标识", fd.Player.state.MovementTransitionId); tv.AddField("保持状态标识", fd.Player.state.KeepStateId); tv.AddField("保持转换标识", fd.Player.state.KeepTransitionId); tv.AddField("姿势状态标识", fd.Player.state.PostureStateId); tv.AddField("姿势转换标识", fd.Player.state.PostureTransitionId); tv.AddField("倾斜状态标识", fd.Player.state.LeanStateId); tv.AddField("倾斜转换标识", fd.Player.state.LeanTransitionId); return(tv); }
public override void DoAction(IEventArgs args) { if (values != null) { args.TempUse(UnitTestConstant.Tester, GetPlayer(args)); GameTrigger trigger = FreeLog.GetTrigger(); foreach (ITestValue value in values) { TestValue tv = value.GetCaseValue(args); tv.Name = value.Name; if (!dic.ContainsKey(tv.Name)) { dic.Add(tv.Name, new List <TestValue>()); dic[tv.Name].Add(tv); } List <TestValue> list = dic[tv.Name]; if (!list[list.Count - 1].IsSame(tv)) { list.Add(tv); } } args.Resume(UnitTestConstant.Tester); } }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); tv.AddField("动作", fd.Player.state.ActionStateId); tv.AddField("移动", fd.Player.state.MovementStateId); return(tv); }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); if (number) { tv.AddField(exp, args.getDouble(exp)); } else { tv.AddField(exp, args.GetString(exp)); } return(tv); }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); if (fd != null) { IPara para = fd.GetParameters().Get(field); if (para != null) { tv.AddField(field, para.GetValue().ToString()); } } return(tv); }
public override void DoAction(IEventArgs args) { if (values != null) { SimpleParaList testParaList = new SimpleParaList(); FreeData fd = GetPlayer(args); if (null != fd) { PlayerEntity player = fd.Player; var entity = args.GameContext.mapObject.GetEntityWithEntityKey(new EntityKey(player.gamePlay.UseEntityId, (int)EEntityType.MapObject)); if (null != entity && entity.hasDoorData) { testParaList.AddFields(new ObjectFields(entity.doorData)); } } SimpleParable sp = new SimpleParable(testParaList); args.TempUse("testPara", sp); args.TempUse(UnitTestConstant.Tester, GetPlayer(args)); GameTrigger trigger = FreeLog.GetTrigger(); foreach (ITestValue value in values) { TestValue tv = value.GetCaseValue(args); tv.Name = value.Name; if (!dic.ContainsKey(tv.Name)) { dic.Add(tv.Name, new List <TestValue>()); dic[tv.Name].Add(tv); } List <TestValue> list = dic[tv.Name]; if (!list[list.Count - 1].IsSame(tv)) { list.Add(tv); } } args.Resume("testPara"); args.Resume(UnitTestConstant.Tester); } }
public static TestValue FromRecord(string v) { TestValue tv = new TestValue(); string[] rs = StringUtil.Split(v, StringUtil.SPLITER_RECORD); foreach (string r in rs) { string[] fs = r.Split(':'); if (fs.Length == 3) { tv.AddField(fs[0], tv.GetValue(int.Parse(fs[1]), fs[2])); } } return(tv); }
public override void DoAction(IEventArgs args) { if (values != null) { args.TempUse(UnitTestConstant.Tester, GetPlayer(args)); GameTrigger trigger = FreeLog.GetTrigger(); foreach (var value in values) { TestValue tv = value.GetCaseValue(args); tv.Name = value.Name; RecordResult(args, trigger, new TestValue[] { tv }); } args.Resume(UnitTestConstant.Tester); } }
public bool IsSame(TestValue other) { if (dic.Count != other.dic.Count) { return(false); } foreach (string key in dic.Keys) { if (!other.dic.ContainsKey(key)) { return(false); } if (dic[key] != other.dic[key]) { return(false); } } return(true); }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); if (fd != null) { EWeaponSlotType currentSlot = fd.Player.GetBagLogicImp().GetCurrentWeaponSlot(); if (args.GetInt(slot) > 0) { currentSlot = FreeWeaponUtil.GetSlotType(args.GetInt(slot)); } WeaponInfo info = fd.Player.GetBagLogicImp().GetWeaponInfo(currentSlot); tv.AddField("id", info.Id); tv.AddField("clip", info.Bullet); tv.AddField("carryClip", info.ReservedBullet); } return(tv); }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); if (fd != null) { EWeaponSlotType currentSlot = fd.Player.WeaponController().HeldSlotType; if (args.GetInt(slot) > 0) { currentSlot = FreeWeaponUtil.GetSlotType(args.GetInt(slot)); } WeaponScanStruct info = fd.Player.WeaponController().HeldWeaponAgent.ComponentScan; tv.AddField("id", info.ConfigId); tv.AddField("clip", info.Bullet); tv.AddField("carryClip", info.ReservedBullet); } return(tv); }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); if (fd != null) { SimpleProto msg = FreePool.Allocate(); msg.Key = FreeMessageConstant.FetchUIValue; msg.Ss.Add(ui); FreeMessageSender.SendMessage(fd.Player, msg); if (UIValues != null && UIValues.Length % 2 == 0) { for (int i = 0; i < UIValues.Length; i = i + 2) { tv.AddField(UIValues[i], UIValues[i + 1]); } } } return(tv); }
public static TestValue[] RecordsFromString(string v) { List <TestValue> list = new List <TestValue>(); string[] tvs = StringUtil.Split(v, StringUtil.SPLITER_RECORD); foreach (string t in tvs) { string[] rs = StringUtil.Split(t, StringUtil.SPLITER_FIELD); TestValue tv = new TestValue(); foreach (string r in rs) { string[] fs = r.Split(':'); if (fs.Length == 3) { tv.AddField(fs[0], tv.GetValue(int.Parse(fs[1]), fs[2])); } } list.Add(tv); } return(list.ToArray()); }
public void AddTestValue(TestValue tv) { this.values.Add(tv); }