|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
[TASK 8.2.2] Pair Programming: Ufo13 + thebol
Benissimo partiamo subito!
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Prima la test list
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Test List:
- Le Gem appartenenti ad un GemGroup non vengono disegnate. - Dato un GemGroup testiamo che la texture caricata per disegnare il GemGroup sia la texture corretta. - Dato un GemGroup testiamo che vengano rilevate le tile di tipo "angolo_alto_sx, angolo_alto_dx etc...", i bordi (alto, sx, dx, basso) e i riempimenti. Il tutto nelle corrette posizioni. - Dato un gruppo 3x3 testiamo che ai corrispondenti angoli, bordi e riempimenti vengano disegnate le "tile" corrette. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
ecco il primo test
![]() Codice:
public class TestGemGroupsDrawing extends TestCase { private Grid grid; private MockTimer timer; public void setUp() { grid = Grid.createForTesting(); timer = new MockTimer(); } public void testGroupedGemIsNotDrawn() { MockEngine engine = new MockEngine(); Gem gem1 = Gem.diamond(3500); Gem gem2 = Gem.diamond(3500); Gem gem3 = Gem.diamond(3500); Gem gem4 = Gem.diamond(3500); insertAndUpdate(gem1, 13, 3); insertAndUpdate(gem2, 13, 4); insertAndUpdate(gem3, 12, 3); insertAndUpdate(gem4, 12, 4); gem1.draw(engine); gem2.draw(engine); gem3.draw(engine); gem4.draw(engine); assertEquals("grouped Gems must be not drawn", 0, engine.getNumberOfQuadsDrawn()); } private void insertAndUpdate(Gem gem, int x, int y) { grid.insertGem(x, y, gem); grid.update(timer, gem); } } |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public void draw(EngineInterface engine) { if (!isInAGroup()) { sprite.draw(engine); } } ps.si sarebbe potuto inserire il controllo in grid.draw(), anziche in gem.draw(); dove è piu sensato metterlo?(per passare questo test è pero obbligatorio metterlo in gem) |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Che bello...ho la ppossibilità di guardarmi un task in pair in diretta!!!
![]() Meglio di SKY...mi prendo 2 pop-corn e me lo godo tutto !!! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
|
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public void testGetTexture(){ Config config = Config.createForTesting(); GemGroups gemGroups = new GemGroups(config.getInteger("rows"), config.getInteger("columns")); gemGroups.addGem(gem1); assertNotNull("Not texture loaded in gemGroups",gemGroups.getTexture()); } Ultima modifica di thebol : 20-01-2006 alle 13:31. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Hmmm il test da NullPointerException...
La Gem va prima inserita nella griglia ![]() Il test cambia così: Codice:
public void testGetTexture() { Config config = Config.createForTesting(); GemGroups gemGroups = new GemGroups(config.getInteger("rows"), config.getInteger("columns")); insertAndUpdate(gem1, 11, 4); gemGroups.addGem(gem1); assertNotNull("No texture loaded in gemGroups", gemGroups.getTexture()); } Questo è il codice (Quick Fix) che fa passare il test ![]() Codice:
public Texture getTexture() { return new Texture("diamond"); } |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
preparo il nuovo test....
Devo testare che il GemGroup restituisca la Texture giusta in base al "GemType del gruppo"... Il GemType del GemGroup non è definito... Tralasciamo questo test un secondo ![]() Propongo questo test Codice:
public void testGemType() { insertAndUpdate(gem3, 13, 3); insertAndUpdate(gem4, 13, 4); insertAndUpdate(gem5, 12, 3); insertAndUpdate(gem6, 12, 4); assertEquals("Wrong GemType of this GemGroup", GemType.EMERALD, gem3.getGroup().getType()); } ![]() Ultima modifica di Ufo13 : 20-01-2006 alle 14:09. |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Non capisco perchè da build rotta sulla build machine... I test sono in ignore!
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public GemType getType() { return gemType; } Codice:
public GemGroups(int rows, int columns, GemType gemType) { defaultRows = rows; defaultColumns = columns; this.gemType = gemType; } |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
thebol ha committato un nuovo test ma è dovuto scappare così non ha potuto postare
Codice:
public void testDifferenteTextureLoaded(){ insertAndUpdate(gem3, 13, 1); insertAndUpdate(gem4, 13, 2); insertAndUpdate(gem5, 12, 1); insertAndUpdate(gem6, 12, 2); insertAndUpdate(gem9, 13, 3); insertAndUpdate(gem10, 13, 4); insertAndUpdate(gem11, 12, 3); insertAndUpdate(gem12, 12, 4); assertEquals("gemGroup Texture is not correct", "gfx/gems/tiles/emerald", gem3.getGroup().getTexture().getName()); assertEquals("gemGroup Texture is not correct", "gfx/gems/tiles/diamond", gem9.getGroup().getTexture().getName()); } ![]() Ultima modifica di Ufo13 : 20-01-2006 alle 15:36. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Aggiunti i seguenti field in GemGroup (ho pure cambiato il nome da GemGroups a GemGroup per coerenza con Gem)
Codice:
private static final String GEMGROUP_PATH = "gfx/gems/tiles/"; private Texture texture; Nel costruttore viene inizializzato l'oggetto Texture Codice:
this.texture = new Texture(GEMGROUP_PATH.concat(gemType.name())); Di conseguenza Codice:
public Texture getTexture() { return texture; } ![]() Preparo il nuovo test |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Il nuovo test è:
Codice:
public void testCorrectGemsPositions() { Gem gem9 = Gem.create(gem3.getType(), 3500); Gem gem10 = Gem.create(gem3.getType(), 3500); Gem gem11 = Gem.create(gem3.getType(), 3500); insertAndUpdate(gem3, 13, 1); insertAndUpdate(gem4, 13, 2); insertAndUpdate(gem5, 13, 3); insertAndUpdate(gem6, 12, 1); insertAndUpdate(gem7, 12, 2); insertAndUpdate(gem8, 12, 3); insertAndUpdate(gem9, 11, 1); insertAndUpdate(gem10, 11, 2); insertAndUpdate(gem11, 11, 3); GemGroup gemGroup = gem3.getGroup(); assertEquals("gem3's groupPosition is not correct", GemGroup.PositionType.BottomLeftCorner, gemGroup.getPositionType(gem3)); assertEquals("gem4's groupPosition is not correct", GemGroup.PositionType.BottomEdge, gemGroup.getPositionType(gem4)); assertEquals("gem5's groupPosition is not correct", GemGroup.PositionType.BottomRightCorner, gemGroup.getPositionType(gem5)); assertEquals("gem6's groupPosition is not correct", GemGroup.PositionType.LeftEdge, gemGroup.getPositionType(gem6)); assertEquals("gem7's groupPosition is not correct", GemGroup.PositionType.Inner, gemGroup.getPositionType(gem7)); assertEquals("gem8's groupPosition is not correct", GemGroup.PositionType.RightEdge, gemGroup.getPositionType(gem8)); assertEquals("gem9's groupPosition is not correct", GemGroup.PositionType.TopLeftCorner, gemGroup.getPositionType(gem9)); assertEquals("gem10's groupPosition is not correct", GemGroup.PositionType.TopEdge, gemGroup.getPositionType(gem10)); assertEquals("gem11's groupPosition is not correct", GemGroup.PositionType.TopRightCorner, gemGroup.getPositionType(gem11)); } ![]() |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
private void updateGroup() { if (checkRectFullOfGems()) { setGemPositionType(); lightUpGems(); } } Codice:
private void setGemPositionType() { candidateGems.put(lefTopCorner, PositionType.TopLeftCorner); candidateGems.put(leftBottomCorner, PositionType.BottomLeftCorner); candidateGems.put(rightTopCorner, PositionType.TopRightCorner); candidateGems.put(rightBottomcorner, PositionType.BottomRightCorner); for(Gem currentGem : candidateGems.keySet()) { if (isSettablePositionType(currentGem)) { if (isInnerGem(currentGem)) { candidateGems.put(currentGem, PositionType.Inner); } else if (currentGem.getCellRow() == topRow) { candidateGems.put(currentGem, PositionType.TopEdge); } else if (currentGem.getCellRow() == bottomRow) { candidateGems.put(currentGem, PositionType.BottomEdge); } else if (currentGem.getCellColumn() == leftColumn) { candidateGems.put(currentGem, PositionType.LeftEdge); } else if (currentGem.getCellColumn() == rightColumn) { candidateGems.put(currentGem, PositionType.RightEdge); } } } } poi per le restanti settabili guardo che spigoli sono. qua gli altri metodi che facevano arrivare la complessita a 12 ![]() Codice:
private boolean isSettablePositionType(Gem currentGem) { return gemIsInRect(currentGem) && !gemIsACorner(currentGem); } private boolean isInnerGem(Gem currentGem) { return currentGem.getCellRow() > topRow && currentGem.getCellColumn() > leftColumn && currentGem.getCellRow() < bottomRow && currentGem.getCellColumn() < rightColumn; } |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Posto io il test che ha fatto thebol
![]() L'ho completato ed ora è così Codice:
public void testCorrectTileDraw() { MockEngine engine = MockEngine.createForTesting(800, 600); Gem gem9 = Gem.create(gem3.getType(), 3500); Gem gem10 = Gem.create(gem3.getType(), 3500); Gem gem11 = Gem.create(gem3.getType(), 3500); insertAndUpdate(gem3, 13, 1); insertAndUpdate(gem4, 13, 2); insertAndUpdate(gem5, 13, 3); insertAndUpdate(gem6, 12, 1); insertAndUpdate(gem7, 12, 2); insertAndUpdate(gem8, 12, 3); insertAndUpdate(gem9, 11, 1); insertAndUpdate(gem10, 11, 2); insertAndUpdate(gem11, 11, 3); GemGroup gemGroup = gem3.getGroup(); gemGroup.draw(PositionType.BottomLeftCorner, engine); assertEquals("bad texture drawn", 0, engine.getTextureRect().left()); assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top()); gemGroup.draw(PositionType.BottomEdge, engine); assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left()); assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top()); gemGroup.draw(PositionType.BottomRightCorner, engine); assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left()); assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top()); gemGroup.draw(PositionType.LeftEdge, engine); assertEquals("bad texture drawn", 0, engine.getTextureRect().left()); assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top()); gemGroup.draw(PositionType.Inner, engine); assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left()); assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top()); gemGroup.draw(PositionType.RightEdge, engine); assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left()); assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top()); gemGroup.draw(PositionType.TopLeftCorner, engine); assertEquals("bad texture drawn", 0, engine.getTextureRect().left()); assertEquals("bad texture drawn", 0, engine.getTextureRect().top()); gemGroup.draw(PositionType.TopEdge, engine); assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left()); assertEquals("bad texture drawn", 0, engine.getTextureRect().top()); gemGroup.draw(PositionType.TopRightCorner, engine); assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left()); assertEquals("bad texture drawn", 0, engine.getTextureRect().top()); } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:57.