コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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);
        }