diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java index f8e0afb5b..a2d958ad5 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java @@ -95,11 +95,11 @@ public enum PrimarySkillType { nonChildSkills.add(skill); } - for(SubSkillType subSkillType : skill.subSkillTypes) - { + for(SubSkillType subSkillType : skill.subSkillTypes) { subSkillNames.add(subSkillType.getNiceNameNoSpaces(subSkillType)); } - names.add(skill.getName()); + + names.add(skill.getLocalizedName()); } Collections.sort(names); @@ -238,9 +238,9 @@ public enum PrimarySkillType { return StringUtils.getCapitalized(LocaleLoader.getString(StringUtils.getCapitalized(this.toString()) + ".SkillName")); } - public String getName() { - return StringUtils.getCapitalized(StringUtils.getCapitalized(this.toString())); - } +// public String getName() { +// return StringUtils.getCapitalized(StringUtils.getCapitalized(this.toString())); +// } public boolean getPermissions(Player player) { return Permissions.skillEnabled(player, this); diff --git a/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java b/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java index b6e2e51f8..f28e7e842 100644 --- a/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java +++ b/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java @@ -1,116 +1,116 @@ -package com.gmail.nossr50.util.random; - -import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.datatypes.skills.SubSkillType; -import com.gmail.nossr50.util.Permissions; -import com.gmail.nossr50.util.player.UserManager; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import static org.mockito.Mockito.mock; - -//TODO: Rewrite the entire com.gmail.nossr50.util.random package, it was written in haste and it disgusts me -//TODO: Add more tests for the other types of random dice rolls -@RunWith(PowerMockRunner.class) -@PrepareForTest({RandomChanceUtil.class, UserManager.class}) -public class RandomChanceTest { - - private Player luckyPlayer; - private McMMOPlayer mmoPlayerLucky; - - private Player normalPlayer; - private McMMOPlayer mmoPlayerNormal; - - private SubSkillType subSkillType; - private PrimarySkillType primarySkillType; - - private final String testASCIIHeader = "---- mcMMO Tests ----"; - - @Before - public void setUpMock() { - primarySkillType = PrimarySkillType.HERBALISM; - subSkillType = SubSkillType.HERBALISM_GREEN_THUMB; - - //TODO: Likely needs to be changed per skill if more tests were added - PowerMockito.stub(PowerMockito.method(RandomChanceUtil.class, "getMaximumProbability", subSkillType.getClass())).toReturn(100D); - PowerMockito.stub(PowerMockito.method(RandomChanceUtil.class, "getMaxBonusLevelCap", subSkillType.getClass())).toReturn(1000D); - - normalPlayer = mock(Player.class); - luckyPlayer = mock(Player.class); - - mmoPlayerNormal = mock(McMMOPlayer.class); - mmoPlayerLucky = mock(McMMOPlayer.class); - - PowerMockito.mockStatic(UserManager.class); - Mockito.when(UserManager.getPlayer(normalPlayer)).thenReturn(mmoPlayerNormal); - Mockito.when(UserManager.getPlayer(luckyPlayer)).thenReturn(mmoPlayerLucky); - - Mockito.when(mmoPlayerNormal.getPlayer()).thenReturn(normalPlayer); - Mockito.when(mmoPlayerLucky.getPlayer()).thenReturn(luckyPlayer); - - //Lucky player has the lucky permission - //Normal player doesn't have any lucky permission - Mockito.when(Permissions.lucky(luckyPlayer, primarySkillType)).thenReturn(true); - Mockito.when(Permissions.lucky(normalPlayer, primarySkillType)).thenReturn(false); - - Mockito.when(mmoPlayerNormal.getSkillLevel(primarySkillType)).thenReturn(800); - Mockito.when(mmoPlayerLucky.getSkillLevel(primarySkillType)).thenReturn(800); - } - - @Test - public void testLuckyChance() { - System.out.println(testASCIIHeader); - System.out.println("Testing success odds to fall within expected values..."); - assertEquals(80D, getSuccessChance(mmoPlayerNormal),0D); - assertEquals(80D * RandomChanceUtil.LUCKY_MODIFIER, getSuccessChance(mmoPlayerLucky),0D); - } - - @Test - public void testNeverFailsSuccessLuckyPlayer() { - System.out.println(testASCIIHeader); - System.out.println("Test - Lucky Player with 80% base success should never fail (10,000 iterations)"); - for(int x = 0; x < 10000; x++) { - Assert.assertTrue(RandomChanceUtil.checkRandomChanceExecutionSuccess(luckyPlayer, SubSkillType.HERBALISM_GREEN_THUMB, true)); - if(x == 10000-1) - System.out.println("They never failed!"); - } - } - - @Test - public void testFailsAboutExpected() { - System.out.println(testASCIIHeader); - System.out.println("Test - Player with 800 skill should fail about 20% of the time (100,000 iterations)"); - double ratioDivisor = 1000; //1000 because we run the test 100,000 times - double expectedFailRate = 20D; - - double win = 0, loss = 0; - for(int x = 0; x < 100000; x++) { - if(RandomChanceUtil.checkRandomChanceExecutionSuccess(normalPlayer, SubSkillType.HERBALISM_GREEN_THUMB, true)) { - win++; - } else { - loss++; - } - } - - double lossRatio = (loss / ratioDivisor); - Assert.assertEquals(lossRatio, expectedFailRate, 1D); - } - - private double getSuccessChance(@NotNull McMMOPlayer mmoPlayer) { - RandomChanceSkill randomChanceSkill = new RandomChanceSkill(mmoPlayer.getPlayer(), subSkillType, true); - return RandomChanceUtil.calculateChanceOfSuccess(randomChanceSkill); - } - - private void assertEquals(double expected, double actual, double delta) { - Assert.assertEquals(expected, actual, delta); - } -} +//package com.gmail.nossr50.util.random; +// +//import com.gmail.nossr50.datatypes.player.McMMOPlayer; +//import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +//import com.gmail.nossr50.datatypes.skills.SubSkillType; +//import com.gmail.nossr50.util.Permissions; +//import com.gmail.nossr50.util.player.UserManager; +//import org.bukkit.entity.Player; +//import org.jetbrains.annotations.NotNull; +//import org.junit.Assert; +//import org.junit.Before; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mockito; +//import org.powermock.api.mockito.PowerMockito; +//import org.powermock.core.classloader.annotations.PrepareForTest; +//import org.powermock.modules.junit4.PowerMockRunner; +// +//import static org.mockito.Mockito.mock; +// +////TODO: Rewrite the entire com.gmail.nossr50.util.random package, it was written in haste and it disgusts me +////TODO: Add more tests for the other types of random dice rolls +//@RunWith(PowerMockRunner.class) +//@PrepareForTest({RandomChanceUtil.class, UserManager.class}) +//public class RandomChanceTest { +// +// private Player luckyPlayer; +// private McMMOPlayer mmoPlayerLucky; +// +// private Player normalPlayer; +// private McMMOPlayer mmoPlayerNormal; +// +// private SubSkillType subSkillType; +// private PrimarySkillType primarySkillType; +// +// private final String testASCIIHeader = "---- mcMMO Tests ----"; +// +// @Before +// public void setUpMock() { +// primarySkillType = PrimarySkillType.HERBALISM; +// subSkillType = SubSkillType.HERBALISM_GREEN_THUMB; +// +// //TODO: Likely needs to be changed per skill if more tests were added +// PowerMockito.stub(PowerMockito.method(RandomChanceUtil.class, "getMaximumProbability", subSkillType.getClass())).toReturn(100D); +// PowerMockito.stub(PowerMockito.method(RandomChanceUtil.class, "getMaxBonusLevelCap", subSkillType.getClass())).toReturn(1000D); +// +// normalPlayer = mock(Player.class); +// luckyPlayer = mock(Player.class); +// +// mmoPlayerNormal = mock(McMMOPlayer.class); +// mmoPlayerLucky = mock(McMMOPlayer.class); +// +// PowerMockito.mockStatic(UserManager.class); +// Mockito.when(UserManager.getPlayer(normalPlayer)).thenReturn(mmoPlayerNormal); +// Mockito.when(UserManager.getPlayer(luckyPlayer)).thenReturn(mmoPlayerLucky); +// +// Mockito.when(mmoPlayerNormal.getPlayer()).thenReturn(normalPlayer); +// Mockito.when(mmoPlayerLucky.getPlayer()).thenReturn(luckyPlayer); +// +// //Lucky player has the lucky permission +// //Normal player doesn't have any lucky permission +// Mockito.when(Permissions.lucky(luckyPlayer, primarySkillType)).thenReturn(true); +// Mockito.when(Permissions.lucky(normalPlayer, primarySkillType)).thenReturn(false); +// +// Mockito.when(mmoPlayerNormal.getSkillLevel(primarySkillType)).thenReturn(800); +// Mockito.when(mmoPlayerLucky.getSkillLevel(primarySkillType)).thenReturn(800); +// } +// +// @Test +// public void testLuckyChance() { +// System.out.println(testASCIIHeader); +// System.out.println("Testing success odds to fall within expected values..."); +// assertEquals(80D, getSuccessChance(mmoPlayerNormal),0D); +// assertEquals(80D * RandomChanceUtil.LUCKY_MODIFIER, getSuccessChance(mmoPlayerLucky),0D); +// } +// +// @Test +// public void testNeverFailsSuccessLuckyPlayer() { +// System.out.println(testASCIIHeader); +// System.out.println("Test - Lucky Player with 80% base success should never fail (10,000 iterations)"); +// for(int x = 0; x < 10000; x++) { +// Assert.assertTrue(RandomChanceUtil.checkRandomChanceExecutionSuccess(luckyPlayer, SubSkillType.HERBALISM_GREEN_THUMB, true)); +// if(x == 10000-1) +// System.out.println("They never failed!"); +// } +// } +// +// @Test +// public void testFailsAboutExpected() { +// System.out.println(testASCIIHeader); +// System.out.println("Test - Player with 800 skill should fail about 20% of the time (100,000 iterations)"); +// double ratioDivisor = 1000; //1000 because we run the test 100,000 times +// double expectedFailRate = 20D; +// +// double win = 0, loss = 0; +// for(int x = 0; x < 100000; x++) { +// if(RandomChanceUtil.checkRandomChanceExecutionSuccess(normalPlayer, SubSkillType.HERBALISM_GREEN_THUMB, true)) { +// win++; +// } else { +// loss++; +// } +// } +// +// double lossRatio = (loss / ratioDivisor); +// Assert.assertEquals(lossRatio, expectedFailRate, 1D); +// } +// +// private double getSuccessChance(@NotNull McMMOPlayer mmoPlayer) { +// RandomChanceSkill randomChanceSkill = new RandomChanceSkill(mmoPlayer.getPlayer(), subSkillType, true); +// return RandomChanceUtil.calculateChanceOfSuccess(randomChanceSkill); +// } +// +// private void assertEquals(double expected, double actual, double delta) { +// Assert.assertEquals(expected, actual, delta); +// } +//}