public void MethodsTest() { var bat = new TankBattalion <Tank>(tanks); var tank = new Tank(new RussianFactory(), TypeOfArmor.Dynamic, TypeOfGun.Artillery, TypeOfEngine.Diesel); bat.Add(tank); Assert.AreEqual(5, bat.Count); Assert.True(bat.Contains(tank)); bat[0] = tank; Assert.AreEqual(tank, bat[0]); bat.Remove(tank); Assert.AreEqual(4, bat.Count); bat.Clear(); Assert.AreEqual(0, bat.Count); Assert.DoesNotThrow(() => { var enumerator = bat.GetEnumerator(); }); Assert.IsFalse(bat.IsReadOnly); }
public void Serialize(TankBattalion <T> tank, string filePath) { using (Stream fStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) { _binFormat.Serialize(fStream, tank); } }
public void SortTest() { var bat = new TankBattalion <Tank>(tanks); bat.Sort(); Assert.IsTrue(bat[0].typeOfArmor == TypeOfArmor.Composite); }
public void Serialize(TankBattalion <T> tank, string filePath) { var wrap = new TankPack <T>(tank); using (Stream fStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) { xml.Serialize(fStream, wrap); } }
public void Serialize(TankBattalion <T> tank, string filePath) { TankPack <T> wrap = new TankPack <T>(tank); var jset = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }; var json = JsonConvert.SerializeObject(wrap, jset); File.WriteAllText(filePath, json); }
public void Init() { var tanks = new List <Tank> { new Tank(new RussianFactory(), TypeOfArmor.Dynamic, TypeOfGun.Artillery, TypeOfEngine.Gasturbine), new Tank(new AmericanFactory(), TypeOfArmor.Composite, TypeOfGun.Artillery, TypeOfEngine.Gasturbine), new Tank(new RussianFactory(), TypeOfArmor.Dynamic, TypeOfGun.Tank, TypeOfEngine.Gasturbine), new Tank(new RussianFactory(), TypeOfArmor.Dynamic, TypeOfGun.Artillery, TypeOfEngine.Diesel), }; bat = new TankBattalion <Tank>(tanks); }
public TankBattalion <T> Deserialize(string filePath) { using (var fs = new FileStream(filePath, FileMode.Open)) { TankBattalion <T> bat = (TankBattalion <T>)_binFormat.Deserialize(fs); foreach (Tank t in bat) { t.SetComponents(); } return(bat); } }
/// <summary> /// Метод перевода коллекции в json-строку /// </summary> /// <typeparam name="T">Тип обобощенной коллекции</typeparam> /// <param name="bat">Коллекция</param> /// <returns>json-строка с объектами коллекции</returns> public static string ConvertToString <T>(this TankBattalion <T> bat) where T : Tank { ExtensionLogger.Log("Вызван метод конвертации коллекции в строку"); TankPack <T> wrap = new TankPack <T>(bat); var jset = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }; var json = JsonConvert.SerializeObject(wrap, jset); return(json); }
static void Main(string[] args) { RussianFactory russianFactory = new RussianFactory(); TankBattalion <Tank> tankBattalion = new TankBattalion <Tank>(2); foreach (Tank tank in tankBattalion.FindTanksWithGunStrength(50)) { tank.GetStatus(); } Console.WriteLine(tankBattalion.ConvertToString()); Console.Read(); }
public TankBattalion <T> Deserialize(string filePath) { var json = File.ReadAllText(filePath); var jset = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }; var wrap = JsonConvert.DeserializeObject <TankPack <T> >(json, jset); var bar = new TankBattalion <T>(wrap.tanks); foreach (Tank t in bar) { t.SetComponents(); } return(bar); }
public TankBattalion <T> Deserialize(string filePath) { TankPack <T> wrap; using (Stream fStream = new FileStream(filePath, FileMode.Open)) { wrap = (TankPack <T>)xml.Deserialize(fStream); } var temp = wrap.tanks.Select(tank => (T)tank).ToList(); TankBattalion <T> bat = new TankBattalion <T>(temp); foreach (Tank t in bat) { t.SetComponents(); } return(bat); }
/// <summary> /// Специальный конструктор который по Номеру Типа автоматически создает конкретный заполненный Юнит /// 1 - Группа Быкова /// 2 - Японцы /// 3 - Танки /// </summary> /// <param name="poligon">Область Юнита</param> /// <param name="type">Номер Типа</param> public Unit(ConvexPolygon poligon, int type) { Polygon = poligon; if (type == 1) // Тип 1 { props = BikovGroup.BikovFea(); UnitType = UnitType.Infantry; } if (type == 2) // Тип 2 { props = JapaneseGroup.JapaneseGroupFea(); UnitType = UnitType.Infantry; } if (type == 3) // Тип 3 { props = TankBattalion.TankBattalionFea(); UnitType = UnitType.Armor; } }
public void BattalionGenTest() { var bat = new TankBattalion <Tank>(10); CollectionAssert.AllItemsAreNotNull(bat.tanks); }
public void PrintTest() { var bat = new TankBattalion <Tank>(tanks); Assert.DoesNotThrow(() => bat.PrintTanks()); }
public void CreateTest() { var bat = new TankBattalion <Tank>(tanks); Assert.AreEqual(4, bat.Count); }
/// <summary> /// Поиск всех таков с заданым уровнем силы оружия /// </summary> /// <typeparam name="T">Тип коллекции</typeparam> /// <param name="bat">Коллекция</param> /// <param name="strength">Сила</param> /// <returns>Список танков</returns> public static List <T> FindTanksWithGunStrength <T>(this TankBattalion <T> bat, int strength) where T : Tank { ExtensionLogger.Log("Вызван метод расширения найти танк с максимальной силой оружия"); return(bat.Where(t => t.gun.strength == strength).ToList()); }
public TankPack(TankBattalion <T> tank) { tanks = tank.tanks; }