Torna indietro   Hardware Upgrade Forum > Software > Programmazione

GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti
GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti
MSI GeForce RTX 5060 Gaming OC e AORUS GeForce RTX 5060 ELITE ci permettono di vedere da vicino l'ultima arrivata di casa NVIDIA, la GPU Blackwell attualmente meno costosa ad arrivare sul mercato con un prezzo a partire da 329 euro. Con 8 GB di VRAM è adeguata per il contesto attuale? La risposta è che dipende molto dalle necessità e aspettative di chi la compra.
Samsung Galaxy Tab S10 FE+: un tablet enorme a un prezzo super, ma con qualche limite
Samsung Galaxy Tab S10 FE+: un tablet enorme a un prezzo super, ma con qualche limite
Samsung Galaxy Tab S10 FE+ 5G si candida come una delle proposte più intriganti fra i tablet dalle dimensioni esagerate. Con uno schermo LCD da 13,1 pollici e una batteria da 10.090 mAh, oltre al supporto S Pen incluso, punta a competere con iPad Air a un prezzo ben inferiore. La proposta coreana appare solida sul piano del design, tuttavia presenta qualche difficoltà in termini di prestazioni pure.
Motorola razr 60 Ultra: il migliore! Peccato per l’AI un po’ ''zoppa''. Recensione
Motorola razr 60 Ultra: il migliore! Peccato per l’AI un po’ ''zoppa''. Recensione
Motorola rinnova i suoi smartphone pieghevoli e abbiamo avuto modo di mettere sotto torchio questo nuovo razr 60 Ultra, flagship della serie, che cambia alcune cose migliorando in molti aspetti e soprattutto divenendo, aspettando Samsung e gli altri, il pieghevole a conchiglia perfetto. Peccato la mancanza di Moto AI in italiano.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-01-2006, 12:26   #1
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
[TASK 8.2.2] Pair Programming: Ufo13 + thebol

Benissimo partiamo subito!
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:29   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Prima la test list
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:44   #3
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:44   #4
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da fek
Prima la test list
dammi il tempo
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:03   #5
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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); 
    }
}
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:14   #6
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Codice:
    public void draw(EngineInterface engine)
    {
        if (!isInAGroup())
        {
            sprite.draw(engine);
        }
        
    }
è la draw di gem

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)
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:15   #7
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Quote:
Originariamente inviato da Ufo13
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.
Ottimo. Aggiungete i test man mano che ne vengono fuori altri.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:16   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Quote:
Originariamente inviato da thebol
Codice:
    public void draw(EngineInterface engine)
    {
        if (!isInAGroup())
        {
            sprite.draw(engine);
        }
        
    }
è la draw di gem

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)
E' piu' sensato metterlo dove fa passare tutti i test, quindi dove l'hai messo tu
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:24   #9
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
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 !!!
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:25   #10
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da fek
E' piu' sensato metterlo dove fa passare tutti i test, quindi dove l'hai messo tu
ashg
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:26   #11
thebol
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.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:48   #12
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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");
    }
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:00   #13
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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());
    }
Corretto il test... 12 invece di 14

Ultima modifica di Ufo13 : 20-01-2006 alle 14:09.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:25   #14
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Non capisco perchè da build rotta sulla build machine... I test sono in ignore!
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:30   #15
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Codice:
    public GemType getType()
    {
        return gemType;
    }
il type viene definito nel costruttore

Codice:
    public GemGroups(int rows, int columns, GemType gemType)
    {
        defaultRows = rows;
        defaultColumns = columns;
        this.gemType = gemType;
    }
questo per evitare che un gruppo non abbia gemType.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 15:26   #16
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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());
    }
L'ho modificato un pelo per testare che la texture sia proprio del tipo corretto

Ultima modifica di Ufo13 : 20-01-2006 alle 15:36.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 15:40   #17
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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;
    }
Build verde

Preparo il nuovo test
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 16:55   #18
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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));
    }
A te thebol
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 19:25   #19
thebol
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);
                }
                
            }           
        }
        
    }
4 posizione le ho gratis.
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;
    }
currentGem è diventata una hashMap<Gem. typePosition>, ho modificato un paio di metodi che ciclavano sull'arrayList.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 20:09   #20
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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());
    }
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti GeForce RTX 5060, due schede alla prova per capi...
Samsung Galaxy Tab S10 FE+: un tablet enorme a un prezzo super, ma con qualche limite Samsung Galaxy Tab S10 FE+: un tablet enorme a u...
Motorola razr 60 Ultra: il migliore! Peccato per l’AI un po’ ''zoppa''. Recensione Motorola razr 60 Ultra: il migliore! Peccato per...
AWS Summit Milano 2025: accelerare sull'IA per liberare il potenziale delle imprese italiane AWS Summit Milano 2025: accelerare sull'IA per l...
Recensione HONOR Pad 10: a questo prezzo fa tremare la concorrenza Recensione HONOR Pad 10: a questo prezzo fa trem...
Questa è la nuova Mercedes elettr...
Amazon Music Unlimited si arricchisce: a...
Sony non vuole sentire ragioni: nessuna ...
OnePlus 15T: un flagship compatto pronto...
vivo X200 FE: il top di gamma si fa tasc...
Zero Trust sempre e ovunque: così...
PlayStation Plus compie 15 anni: ce...
Tutte le offerte Amazon oggi: tablet 99€...
Tanti errori per i Tesla Robotaxi: passe...
HONOR Pad 10: quando batteria infinita i...
Parlare con il tuo gatto? Ecco l'AI cine...
Amazon lancia gli sconti sulle nuove RTX...
Snapdragon 8 Elite 2 a 2nm debutter&agra...
Una scelta intelligente: Xiaomi Redmi No...
The Social Network Parte II si far&agrav...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v