示例#1
0
    public void AddEnergyConsumerAddsExpectedEnergyConsumersTest()
    {
        EnergyDistributionModel edm      = new EnergyDistributionModel();
        EnergyConsumer          consumer = new EnergyConsumer("Missiles", 3.0f, 0.75f);

        edm.AddEnergyConsumer(consumer);

        List <EnergyConsumer> consumers = edm.Consumers;

        Assert.NotNull(consumers);
        Assert.AreEqual(1, consumers.Count);
        Assert.AreEqual(consumer, consumers[0]);

        EnergyConsumer consumer2 = new EnergyConsumer("Missiles", 3.0f, 0.75f),
                       consumer3 = new EnergyConsumer("Headlights", 0.3f, 1.5f);

        edm.AddEnergyConsumer(consumer2);
        edm.AddEnergyConsumer(consumer3);

        List <EnergyConsumer> expectedConsumers = new List <EnergyConsumer>();

        expectedConsumers.Add(consumer);
        expectedConsumers.Add(consumer2);
        expectedConsumers.Add(consumer3);
        consumers = edm.Consumers;

        CollectionAssert.AreEqual(expectedConsumers, consumers);
    }
示例#2
0
    public void GetTotalEnergyDemandReturnsZeroWithNoConsumers()
    {
        EnergyDistributionModel edm = new EnergyDistributionModel();
        float expected = 0.0f;

        Assert.AreEqual(expected, edm.TotalEnergyDemand);
    }
示例#3
0
    public void WithNoEnergyInStorageUpdateModelAdjustsConsumersTest()
    {
        EnergyDistributionModel edm     = new EnergyDistributionModel();
        EnergyStorage           storage = new EnergyStorage();

        storage.SetCurrentCapacity(0.0f);
        edm.EnergyStorage = storage;
        EnergyConsumer consumer1 = new EnergyConsumer("Beam", 1.0f, 1.0f),
                       consumer2 = new EnergyConsumer("Missiles", 3.0f, 0.75f);

        consumer1.Temperature          = 5.0f;
        consumer2.Temperature          = 0.0f;
        consumer2.BaseDemandMultiplier = 1.5f;
        edm.AddEnergyConsumer(consumer1);
        edm.AddEnergyConsumer(consumer2);
        List <EnergyConsumer> consumers = new List <EnergyConsumer>();

        consumers.Add(consumer1);
        consumers.Add(consumer2);

        float consumer1ExpectedHeat = consumer1.Temperature - consumer1.HeatFactor;
        float consumer2ExpectedHeat = 0.0f;
        float commonExpectedCurrentEnergyMultiplier = 0.0f;

        edm.UpdateModel();

        consumers = edm.Consumers;
        consumer1 = consumers[0];
        consumer2 = consumers[1];

        Assert.AreEqual(consumer1ExpectedHeat, consumer1.Temperature);
        Assert.AreEqual(consumer2ExpectedHeat, consumer2.Temperature);
        Assert.AreEqual(commonExpectedCurrentEnergyMultiplier, consumer1.BaseDemandMultiplier);
        Assert.AreEqual(commonExpectedCurrentEnergyMultiplier, consumer2.BaseDemandMultiplier);
    }
示例#4
0
    void Awake()
    {
        //energyStorage = GameObject.FindGameObjectWithTag ("Canvas").GetComponent<ReactorController> ().GetEnergyStorage();

        distModel = new EnergyDistributionModel();
        distModel.AddEnergyConsumer(new MyEnergyConsumer("Beam", 1.0f, 1.0f));
        distModel.AddEnergyConsumer(new MyEnergyConsumer("Missiles", 3.0f, 0.75f));
        distModel.AddEnergyConsumer(new MyEnergyConsumer("Headlights", 0.3f, 0.5f));
        distModel.AddEnergyConsumer(new MyEnergyConsumer("Fridge", 2.5f, 0.25f));
        distModel.AddEnergyConsumer(new MyEnergyConsumer("New Consumer", 4.7f, 0.11f));
    }
示例#5
0
    public void GetTotalEnergyDemandReturnsSumOfConsumersEnergyConsumptionTest()
    {
        EnergyDistributionModel edm = new EnergyDistributionModel();
        float          ec1 = 1.0f, ec2 = 3.0f, ec3 = 0.3f;
        float          sum       = ec1 + ec2 + ec3;
        EnergyConsumer consumer1 = new EnergyConsumer("Beam", ec1, 1.0f),
                       consumer2 = new EnergyConsumer("Missiles", ec2, 0.75f),
                       consumer3 = new EnergyConsumer("Headlights", ec3, 1.5f);

        edm.AddEnergyConsumer(consumer1);
        edm.AddEnergyConsumer(consumer2);
        edm.AddEnergyConsumer(consumer3);

        Assert.AreEqual(sum, edm.TotalEnergyDemand);
    }
示例#6
0
    void Awake()
    {
        EnergyDistributionController distController = GetComponent <EnergyDistributionController> ();

        distModel = distController.DistributionModel;
        consumers = distModel.Consumers;

        //-------------------
        sliderGroups = new List <GameObject> ();

        foreach (EnergyConsumer consumer in consumers)
        {
            InstantiateSliders(consumer);
        }
    }
示例#7
0
    public void WithEnergyInStorageUpdateModelAdjustsConsumerHeatTest()
    {
        EnergyDistributionModel edm     = new EnergyDistributionModel();
        EnergyStorage           storage = new EnergyStorage();

        storage.SetCurrentCapacity(storage.maxCapacity);
        edm.EnergyStorage = storage;
        EnergyConsumer consumer1 = new EnergyConsumer("Beam", 1.0f, 1.0f),
                       consumer2 = new EnergyConsumer("Missiles", 3.0f, 0.75f),
                       consumer3 = new EnergyConsumer("Headlights", 0.3f, 1.5f),
                       consumer4 = new EnergyConsumer("AC", 0.5f, 0.8f);

        consumer1.Temperature          = consumer1.MaxTemperature + 5.0f;
        consumer2.Temperature          = 0.0f;
        consumer2.BaseDemandMultiplier = 1.5f;
        consumer3.Temperature          = 0.5f;
        consumer4.BaseDemandMultiplier = 0.5f;
        consumer4.Temperature          = -5.0f;
        edm.AddEnergyConsumer(consumer1);
        edm.AddEnergyConsumer(consumer2);
        edm.AddEnergyConsumer(consumer3);
        edm.AddEnergyConsumer(consumer4);
        List <EnergyConsumer> consumers = new List <EnergyConsumer>();

        consumers.Add(consumer1);
        consumers.Add(consumer2);
        consumers.Add(consumer3);
        consumers.Add(consumer4);

        float consumer1ExpectedHeat = consumer1.MaxTemperature,
              consumer2ExpectedHeat = consumer2.Temperature + (consumer2.BaseDemandMultiplier * consumer2.HeatFactor),
              consumer3ExpectedHeat = consumer3.Temperature - ((1.0f - consumer3.BaseDemandMultiplier) * consumer3.HeatFactor),
              consumer4ExpectedHeat = 0.0f;

        edm.UpdateModel();

        consumers = edm.Consumers;
        consumer1 = consumers[0];
        consumer2 = consumers[1];
        consumer3 = consumers[2];
        consumer4 = consumers[3];

        Assert.AreEqual(consumer1ExpectedHeat, consumer1.Temperature);
        Assert.AreEqual(consumer2ExpectedHeat, consumer2.Temperature);
        Assert.AreEqual(consumer3ExpectedHeat, consumer3.Temperature);
        Assert.AreEqual(consumer4ExpectedHeat, consumer4.Temperature);
    }
    void Awake()
    {
        string message = "Connected consumers:\n";
        EnergyDistributionController distController = GetComponent <EnergyDistributionController> ();

        distModel = distController.DistributionModel;
        List <EnergyConsumer> consumers = distModel.Consumers;

        foreach (EnergyConsumer consumer in consumers)
        {
            message += ""
                       + consumer.Name.ToUpper()
                       + " pwr setting: "
                       + consumer.CurrentEnergyMultiplier
                       + " pwr cons.: "
                       + consumer.GetCurrentEnergyConsumption()
                       + "\n";
        }

        connectedConsumers.text = message;
    }
示例#9
0
    public void UpdateModelDecresesEnergyStorageByTotalEnergyDemandTest()
    {
        EnergyDistributionModel edm     = new EnergyDistributionModel();
        EnergyStorage           storage = new EnergyStorage();

        storage.SetCurrentCapacity(storage.maxCapacity);
        edm.EnergyStorage = storage;
        float          ec1 = 1.0f, ec2 = 3.0f, ec3 = 0.3f;
        float          sum       = ec1 + ec2 + ec3;
        EnergyConsumer consumer1 = new EnergyConsumer("Beam", ec1, 1.0f),
                       consumer2 = new EnergyConsumer("Missiles", ec2, 0.75f),
                       consumer3 = new EnergyConsumer("Headlights", ec3, 1.5f);

        edm.AddEnergyConsumer(consumer1);
        edm.AddEnergyConsumer(consumer2);
        edm.AddEnergyConsumer(consumer3);

        float initStorage = edm.GetEnergyStorageCurrentCapacity();
        float expected    = initStorage - sum;

        edm.UpdateModel();

        Assert.AreEqual(expected, edm.GetEnergyStorageCurrentCapacity());
    }
示例#10
0
    public void NewEnergyDistributionModelHasNoConsumersTest()
    {
        EnergyDistributionModel edm = new EnergyDistributionModel();

        Assert.IsEmpty(edm.Consumers);
    }
 void Awake()
 {
     distModel = new EnergyDistributionModel();
 }