/*
* Title: CloudSim Toolkit
* Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds
* Licence: GPL - http://www.gnu.org/copyleft/gpl.html
*
* Copyright (c) 2009-2012, The University of Melbourne, Australia
*/
package org.cloudbus.cloudsim.power;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.List;
import org.cloudbus.cloudsim.Pe;
import org.cloudbus.cloudsim.power.models.PowerModelLinear;
import org.cloudbus.cloudsim.provisioners.PeProvisionerSimple;
import org.junit.Before;
import org.junit.Test;
/**
* @author Anton Beloglazov
* @since CloudSim Toolkit 2.0
*/
public class PowerHostTest {
private static final double MIPS = 1000;
private static final double MAX_POWER = 200;
private static final double STATIC_POWER_PERCENT = 0.3;
private static final double TIME = 10;
private PowerHost host;
@Before
public void setUp() throws Exception {
List<Pe> peList = new ArrayList<Pe>();
peList.add(new Pe(0, new PeProvisionerSimple(MIPS)));
host = new PowerHost(0, null, null, 0, peList, null, new PowerModelLinear(MAX_POWER, STATIC_POWER_PERCENT));
}
@Test
public void testGetMaxPower() {
assertEquals(MAX_POWER, host.getMaxPower(), 0);
}
@Test
public void testGetEnergy() {
assertEquals(0, host.getEnergyLinearInterpolation(0, 0, TIME), 0);
double expectedEnergy = 0;
try {
expectedEnergy = (host.getPowerModel().getPower(0.2) + (host.getPowerModel().getPower(0.9) - host.getPowerModel().getPower(0.2)) / 2) * TIME;
} catch (Exception e) {
e.printStackTrace();
fail();
}
assertEquals(expectedEnergy, host.getEnergyLinearInterpolation(0.2, 0.9, TIME), 0);
}
}