Ejemplo n.º 1
0
        public void CalculateAverageWaterSupplyOfCanalHeadTest()
        {
            Hydro hydroCalculator = InitHydro();

            hydroCalculator.CalculateRoundOrderArea();
            hydroCalculator.CalculateOriginalIrrigationRequirement();
            hydroCalculator.CalculateGrossIrrigationRequirement();
            hydroCalculator.CalculateAverageWaterSupplyOfCanalHead();
            List <double> testCase = new List <double>()
            {
                11634750, 2446292, 2714460, 2951257, 2735383, 2793779, 1465560, 379673, 62961444
            };
            List <double> roundDays = new List <double>()
            {
                21, 17, 21, 19, 18, 15, 19, 18, 55
            };

            for (int i = 0; i < testCase.Count; i++)
            {
                testCase[i] = testCase[i] / 0.63 / roundDays[i] / 8.64;
                Console.WriteLine(testCase[i]);
                Console.WriteLine(hydroCalculator.AverageWaterSupplyOfCanalHead[i]);
            }
            Assert.IsTrue(IsListEqual(hydroCalculator.AverageWaterSupplyOfCanalHead, testCase));
        }
Ejemplo n.º 2
0
        public ActionResult DeleteConfirmed(int id)
        {
            Hydro hydro = db.Hydros.Find(id);

            db.Hydros.Remove(hydro);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 3
0
 public ActionResult Edit([Bind(Include = "HydroID,Name,Price,Description")] Hydro hydro)
 {
     if (ModelState.IsValid)
     {
         db.Entry(hydro).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(hydro));
 }
Ejemplo n.º 4
0
        private Hydro InitHydro()
        {
            Hydro hydroCalculator = new Hydro(HydroConst.GrossIrrigationConst, HydroConst.AverageWaterSupplyOfCanalHeadConst, HydroConst.WaterRequirementConst, HydroConst.BasicUtilizableCapacity);

            hydroCalculator.Inflow                = InitInflowData();
            hydroCalculator.DryEarth              = InitDryEarthData();
            hydroCalculator.DeptCropArea          = InitDeptCropAreaData();
            hydroCalculator.RoundOrderInfo        = InitRoundOrderInfo();
            hydroCalculator.IrrigationInstitution = InitIrrigationInstitution();
            return(hydroCalculator);
        }
Ejemplo n.º 5
0
        public ActionResult Create([Bind(Include = "HydroID,Name,Price,Description")] Hydro hydro)
        {
            if (ModelState.IsValid)
            {
                db.Hydros.Add(hydro);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(hydro));
        }
Ejemplo n.º 6
0
        // GET: Hydro/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Hydro hydro = db.Hydros.Find(id);

            if (hydro == null)
            {
                return(HttpNotFound());
            }
            return(View(hydro));
        }
Ejemplo n.º 7
0
        public void CalculateInflowAveragePredictionTest()
        {
            Hydro hydroCalculator = InitHydro();

            hydroCalculator.CalculateInflowAveragePrediction();
            List <double> testCase = new List <double>()
            {
                119.18, 68.44, 40.82, 83.412, 123.323, 140.645, 248.84, 129.02, 104.01
            };

            for (int i = 0; i < testCase.Count; i++)
            {
                testCase[i] = testCase[i] * 8.64 * 10;
                Console.WriteLine(testCase[i]);
                Console.WriteLine(hydroCalculator.InflowAveragePrediction[i]);
            }
            Assert.IsTrue(IsListEqual(testCase, hydroCalculator.InflowAveragePrediction));
        }
Ejemplo n.º 8
0
        public void CalculateGrossIrrigationRequirementTest()
        {
            Hydro hydroCalculator = InitHydro();

            hydroCalculator.CalculateRoundOrderArea();
            hydroCalculator.CalculateOriginalIrrigationRequirement();
            hydroCalculator.CalculateGrossIrrigationRequirement();
            List <double> testCase = new List <double>()
            {
                11634750, 2446292, 2714460, 2951257, 2735383, 2793779, 1465560, 379673, 62961444
            };

            for (int i = 0; i < testCase.Count; i++)
            {
                testCase[i] /= 0.63;
            }
            Assert.IsTrue(IsListEqual(hydroCalculator.GrossIrrigationRequirement, testCase));
        }
Ejemplo n.º 9
0
        public void CalculateOriginalIrrigationRequirementTest()
        {
            Hydro hydroCalculator = InitHydro();

            hydroCalculator.CalculateRoundOrderArea();
            hydroCalculator.CalculateOriginalIrrigationRequirement();
            List <int> testCase = new List <int>()
            {
                11634750, 2446292, 2714460, 2951257, 2735383, 2793779, 1465560, 379673, 62961444
            };

            for (int i = 0; i < hydroCalculator.OriginalIrrigationRequirement.Count; i++)
            {
                Console.WriteLine(hydroCalculator.OriginalIrrigationRequirement[i]);
                Console.WriteLine(testCase[i]);
            }
            Assert.IsTrue(IsListEqual(hydroCalculator.OriginalIrrigationRequirement, testCase));
        }
Ejemplo n.º 10
0
        public void CalculateRoundOrderAreaTest()
        {
            Hydro hydroCalculator = InitHydro();

            hydroCalculator.CalculateRoundOrderArea();
            //List<int> testCase = new List<int>() { 19964, 525, 14032, 13833, 2274, 16887, 312, 2023, 651, 1733, 1194, 2572, 6594, 5858, 10759, 11765};
            List <int> testCase = new List <int>()
            {
                77565, 33058, 39340, 41567, 37471, 39349, 20355, 5201, 345942
            };

            for (int i = 0; i < hydroCalculator.RoundOrderArea.Count; i++)
            {
                Console.WriteLine(hydroCalculator.RoundOrderArea[i]);
                Console.WriteLine(testCase[i]);
            }
            Assert.IsTrue(IsListEqual(hydroCalculator.RoundOrderArea, testCase));
        }
Ejemplo n.º 11
0
        public void CalculateUtilizableCapacityTest()
        {
            Hydro hydroCalculator = InitHydro();

            hydroCalculator.CalculateRoundOrderArea();
            hydroCalculator.CalculateOriginalIrrigationRequirement();
            hydroCalculator.CalculateGrossIrrigationRequirement();
            hydroCalculator.CalculateAverageWaterSupplyOfCanalHead();
            hydroCalculator.CalculateAverageFlow();
            hydroCalculator.CalculateWaterRequirement();
            hydroCalculator.CalculateInflowAveragePrediction();
            hydroCalculator.CalculateUtilizableCapacity();
            List <double> testCase = new List <double>()
            {
                0, 0, 0, 0, 0, 0, 0, 0, 0
            };

            for (int i = 0; i < hydroCalculator.InflowAveragePrediction.Count; i++)
            {
                double restWater = (0 == i ? 18956.8062545455 : testCase[i - 1]);
                testCase[i] = restWater + hydroCalculator.InflowAveragePrediction[i] - hydroCalculator.WaterRequirement[i];
            }
            Assert.IsTrue(IsListEqual(testCase, hydroCalculator.UtilizableCapacity));
        }
Ejemplo n.º 12
0
        public string UWP(Planet.WorldType type = Planet.WorldType.NORMAL, double diameter = 0)
        {
            var builder = new StringBuilder();

            switch (type)
            {
            case Planet.WorldType.LGG:
                builder.AppendFormat("LGG - diameter {0} km", diameter.ToString("F"));
                break;

            case Planet.WorldType.SGG:
                builder.AppendFormat("SGG - diameter {0} km", diameter.ToString("F"));
                break;

            case Planet.WorldType.SMALL:
                builder.AppendFormat("{0}-S{1}{2}{3}-{4}", Starport, Atmosphere.ToString(), Hydro.ToString(), SocialUWP(), TechLevel.ToString());
                break;

            case Planet.WorldType.RING:
                builder.AppendFormat("{0}-R00{1}-{2}", Starport, SocialUWP(), TechLevel.ToString());
                break;

            case Planet.WorldType.NORMAL:
            case Planet.WorldType.PLANETOID:
                builder.AppendFormat("{0}-{1}{2}-{3}", Starport, PhysicalUWP(), SocialUWP(), TechLevel.ToString());
                break;

            case Planet.WorldType.STAR:
                builder.Append(Languages.CompanionStar);
                break;
            }
            return(builder.ToString());
        }
Ejemplo n.º 13
0
        public static Project Create(string Profolder, string Proname, PType Protype, bool Inctemplate)
        {
            Project PObject;
            string  Profile = Profolder + @"\" + Proname + @"\" + Proname + ".mpr";

            Profolder = Profolder + @"\" + Proname;
            switch (Protype)
            {
            case PType.Csharp:
                PObject = new Csharp(Profile);
                break;

            case PType.Databse:
                PObject = new Database(Profile);
                break;

            case PType.Hydro:
                PObject = new Hydro(Profile);
                break;

            case PType.Ilasm:
                PObject = new Ilasm(Profile);
                break;

            case PType.Java:
                PObject = new Java(Profile);
                break;

            case PType.Unmanaged:
                PObject = new Unmanaged(Profile);
                break;

            case PType.Vbasic:
                PObject = new Vbasic(Profile);
                break;

            case PType.Website:
                PObject = new Website(Profile);
                break;

            case PType.Yalamof:
                PObject = new Yalamof(Profile);
                break;

            default:
                PObject = new Unmanaged();
                break;
            }
            try
            {
                Directory.CreateDirectory(Profolder);
                if (Inctemplate == true)
                {
                    PObject.CopyTemplate();
                }
                PObject.Save();
            }
            catch (Exception e)
            {
                Exceptioner.Log(e);
            }
            return(PObject);
        }
Ejemplo n.º 14
0
	private void LoadSaveLua(){
		System.Text.Encoding encodeType = System.Text.Encoding.ASCII;
		string loadedFileSave = "";
		string MapPath = EnvPaths.GetMapsPath();

		loadedFileSave = System.IO.File.ReadAllText(ScenarioData.SaveLua.Replace("/maps/", MapPath), encodeType);

		string loadedFileFunctions = LuaHelper.GetStructureText ("lua_variable_functions.lua");
		//loadedFileFunctions = System.IO.File.ReadAllText(StructurePath + "lua_variable_functions.lua", encodeType);

		string loadedFileEndFunctions = LuaHelper.GetStructureText ("lua_variable_end_functions.lua");
		//loadedFileEndFunctions = System.IO.File.ReadAllText(StructurePath + "lua_variable_end_functions.lua", encodeType);
		
		loadedFileSave = loadedFileFunctions + loadedFileSave + loadedFileEndFunctions;
		
		save = new Lua();
		save.LoadCLRPackage();
		
		try {
			save.DoString(loadedFileSave);
		} catch(NLua.Exceptions.LuaException e) {
			Debug.LogError(ParsingStructureData.FormatException(e), gameObject);
			
			HelperGui.MapLoaded = false;
			return;
		}
		// LoadArea
		ScenarioData.Area = new Rect();
		if(save.GetTable("Scenario.Areas.AREA_1") != null && save.GetTable("Scenario.Areas.AREA_1").ToString() != "null"){
			ScenarioData.DefaultArea = true;
			ScenarioData.Area.x = float.Parse(save.GetTable("Scenario.Areas.AREA_1.rectangle")[1].ToString(), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
			ScenarioData.Area.y = float.Parse(save.GetTable("Scenario.Areas.AREA_1.rectangle")[2].ToString(), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
			ScenarioData.Area.width = float.Parse(save.GetTable("Scenario.Areas.AREA_1.rectangle")[3].ToString(), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
			ScenarioData.Area.height = float.Parse(save.GetTable("Scenario.Areas.AREA_1.rectangle")[4].ToString(), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
			UpdateArea();
		}
		else{
			ScenarioData.DefaultArea = false;
			HeightmapControler.TerrainMaterial.SetInt("_Area", ScenarioData.DefaultArea?1:0);
			MapElements.SetActive(false);
			HeightmapControler.TerrainMaterial.SetFloat("_AreaX", 0);
			HeightmapControler.TerrainMaterial.SetFloat("_AreaY", 0);
			HeightmapControler.TerrainMaterial.SetFloat("_AreaWidht", ScenarioData.Size.x / 10f);
			HeightmapControler.TerrainMaterial.SetFloat("_AreaHeight", ScenarioData.Size.y / 10f);
		}

		MapCenterPoint = Vector3.zero;
		MapCenterPoint.x = (ScenarioData.Size.x / 20);
		MapCenterPoint.z = -1 * (ScenarioData.Size.y / 20);
		
		// LoadMarkers
		#region Load Markers
		//int MarkersCount = save.GetTable("Scenario.MasterChain._MASTERCHAIN_.Markers").Values.Count;

		Mexes = new List<Mex>();
		Hydros = new List<Hydro>();
		ARMY_ = new List<Army>();
		SiMarkers = new List<Marker>();


		//LuaTable MasterChain = save.GetTable("Scenario.MasterChain._MASTERCHAIN_.Markers") as LuaTable;
		//string[] KeysArray = new string[MarkersCount];
		//MasterChain.Keys.CopyTo(KeysArray, 0);

		LuaHelper.LHTable MarkersTable = new LuaHelper.LHTable(save.GetTable("Scenario.MasterChain._MASTERCHAIN_.Markers"));

		for(int m = 0; m < MarkersTable.Count; m++){
			//LuaTable MarkerTab = MasterChain[KeysArray[m]] as LuaTable;
			LuaHelper.LHTable MarkerTable = new LuaHelper.LHTable(MarkersTable, MarkersTable.Keys[m]);

			Vector3 MarkerPosParsed = Vector3.zero;
			MarkerTable.GetVector3Value("position", out MarkerPosParsed);

			Vector3 MarkerRotParsed = Vector3.zero;
			MarkerTable.GetVector3Value("orientation", out MarkerRotParsed);

			string TypeOfMarker = MarkerTable.GetStringValue("type");

			if(TypeOfMarker == "Mass"){
				Mex newMex = new Mex();
				newMex.name = MarkersTable.Keys[m];
				
				newMex.position = HeightmapControler.MapPosInWorld(MarkerPosParsed);
				newMex.orientation = MarkerRotParsed;
				
				LuaHelper.ReadSpawnWithArmy(out newMex.SpawnWithArmy, MarkerTable);

				Mexes.Add(newMex);
			}
			else if(TypeOfMarker == "Hydrocarbon"){
				Hydro NewHydro = new Hydro();
				NewHydro.name = MarkersTable.Keys[m];

				NewHydro.size = MarkerTable.GetFloatValue("size");
				NewHydro.amount = MarkerTable.GetFloatValue("amount");
				NewHydro.resource = MarkerTable.GetBoolValue("resource");
				NewHydro.prop = MarkerTable.GetStringValue("prop");

				NewHydro.color = MarkerTable.GetColorValue("color");

				NewHydro.position = HeightmapControler.MapPosInWorld(MarkerPosParsed);
				NewHydro.orientation = MarkerRotParsed;

				LuaHelper.ReadSpawnWithArmy(out NewHydro.SpawnWithArmy, MarkerTable);

				Hydros.Add(NewHydro);
			}
			else if(MarkersTable.Keys[m].Contains("ARMY_")){
				Army NewArmy = new Army();
				NewArmy.name = MarkersTable.Keys[m];

				NewArmy.Id = int.Parse(MarkersTable.Keys[m].Replace("ARMY_", ""));

				NewArmy.position = HeightmapControler.MapPosInWorld(MarkerPosParsed);
				NewArmy.orientation = MarkerRotParsed;

				ARMY_.Add(NewArmy);
			}
			else{
				Marker NewMarker = new Marker();
				NewMarker.name = MarkersTable.Keys[m];
				NewMarker.position = HeightmapControler.MapPosInWorld(MarkerPosParsed);
				NewMarker.orientation = MarkerRotParsed;

				NewMarker.type = TypeOfMarker;
				NewMarker.prop = MarkerTable.GetStringValue("prop");

				// HINT
				NewMarker.hintValue = MarkerTable.GetStringValue("hint");
				NewMarker.hint = MarkerTable.GetBoolValue("hint");

				// GRAPH
				NewMarker.graph = MarkerTable.GetStringValue("graph");

				// adjacentTo
				NewMarker.adjacentTo = MarkerTable.GetStringValue("adjacentTo");


				// Color
				if (!string.IsNullOrEmpty(MarkerTable.GetStringValue("color"))) {
					//Color MyColor = Color.white;
					//ColorUtility.TryParseHtmlString (MarkerTable.GetStringValue("color"), out MyColor);
					NewMarker.Kolor = MarkerTable.GetColorValue("color");

				} else
					NewMarker.Kolor = Color.white;
				

				LuaHelper.ReadSpawnWithArmy(out NewMarker.SpawnWithArmy, MarkerTable);

				SiMarkers.Add(NewMarker);
			}
		}

		SortArmys();

		MexTotalCount = Mexes.Count;
		HydrosTotalCount = Hydros.Count;
		SiTotalCount = SiMarkers.Count;
		#endregion

		#region Load Army Save
		SaveArmys = new List<SaveArmy> ();
		LuaHelper.LHTable ArmiesTable = new LuaHelper.LHTable(save.GetTable("Scenario.Armies"));

		for(int m = 0; m < ArmiesTable.Count; m++){
			LuaHelper.LHTable ArmyTable = new LuaHelper.LHTable(ArmiesTable, ArmiesTable.Keys[m]);
			SaveArmy NewArmy = new SaveArmy();
			NewArmy.Name = ArmiesTable.Keys[m];

			AddSaveArmyMarker(NewArmy.Name);

			NewArmy.personality = ArmyTable.GetStringValue("personality");
			NewArmy.plans = ArmyTable.GetStringValue("plans");
			NewArmy.color = ArmyTable.GetIntValue("color");
			NewArmy.faction = ArmyTable.GetIntValue("faction");

			LuaHelper.LHTable EconomyTable = new LuaHelper.LHTable(ArmyTable, "Economy");
			NewArmy.EconomyMass = EconomyTable.GetIntValue("mass");
			NewArmy.EconomyEnergy = EconomyTable.GetIntValue("energy");

			NewArmy.Alliances = ArmyTable.GetStringArrayValue("Alliances");


			// Get units

			NewArmy.UnitsOrders = "";
			NewArmy.UnitsPlatoon = "";
			NewArmy.Units = new List<UnitGroup>();
			LuaHelper.LHTable ArmyUnitsTable;
			ArmyTable.GetLuaArmyGroup("Units", out NewArmy.UnitsOrders, out NewArmy.UnitsPlatoon, out ArmyUnitsTable);

		
			for(int i = 0; i < ArmyUnitsTable.Count; i++){
				UnitGroup NewUnitGroup = new UnitGroup();
				NewUnitGroup.Name = ArmyUnitsTable.Keys[i];

				LuaHelper.LHTable UnitsGroupTable;
				ArmyUnitsTable.GetLuaArmyGroup(ArmyUnitsTable.Keys[i], out NewUnitGroup.orders, out NewUnitGroup.platoon, out UnitsGroupTable);

				for(int u = 0; u < UnitsGroupTable.Count; u++){
					Unit NewUnit = new Unit();
					LuaHelper.LHTable UnitTable = new LuaHelper.LHTable(UnitsGroupTable, UnitsGroupTable.Keys[u]);

					NewUnit.Name = UnitsGroupTable.Keys[u];
					NewUnit.type = UnitTable.GetStringValue("type");
					NewUnit.orders = UnitTable.GetStringValue("orders");
					NewUnit.platoon = UnitTable.GetStringValue("platoon");
					UnitTable.GetVector3Value("Position", out NewUnit.Position);
					UnitTable.GetVector3Value("Orientation", out NewUnit.Orientation);

					NewUnitGroup.Units.Add(NewUnit);
				}

				NewArmy.Units.Add(NewUnitGroup);
			}
				
			SaveArmys.Add(NewArmy);
		}

		#endregion
	}
Ejemplo n.º 15
0
 public string PhysicalUWP()
 {
     return(Size.ToString() + Atmosphere.ToString() + Hydro.ToString());
 }