private static void TestCodeGen(TypeManager typeMgr) { TypeGenerator typeGen = new TypeGenerator(typeMgr); // typeGen.IsAllInOne = true; foreach (var typeDef in typeMgr.Module.Types) { if (GetTestClassResult(typeDef, out string expected)) { var oldColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}: ", typeDef.FullName); Console.ForegroundColor = oldColor; typeMgr.AddEntry(typeDef.FindMethod("Entry")); typeMgr.Process(); typeGen.GenerateAll(); string result = typeGen.ToString(); typeGen.ToFolder("../gen"); if (result == expected) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("PASSED"); Console.ForegroundColor = oldColor; } else { result = result.Replace("\t", " "); expected = expected.Replace("\t", " "); int diff = 0; for (; diff < Math.Min(result.Length, expected.Length); ++diff) { if (result[diff] != expected[diff]) { break; } } Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("FAILED"); Console.ForegroundColor = oldColor; Console.Write(result.Substring(0, diff)); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine('[' + result.Substring(diff) + ']'); Console.ForegroundColor = oldColor; } typeMgr.Reset(); } } }
public float CalculatePrice(float energy) { if (Renewable) { return(0); } float price = 0; float percentage = (100 * (energy)) / (MaxPower); Curve = CalculationEngine.generatorCurves.FirstOrDefault(x => x.LowerPoint <= percentage && x.HigherPoint >= percentage && x.GeneratorType.Split('_')[0] == TypeGenerator.ToString()); if (Curve != null) { float fuelQuantityPerMW = (float)Curve.A * (percentage) + (float)Curve.B; //[t/MW] float fuelQuantity = fuelQuantityPerMW * (energy / 1000f); price = Fuel.Item2 * fuelQuantity; PointX = percentage; PointY = fuelQuantityPerMW; } return(price); }