Skip to content
This repository has been archived by the owner on Apr 27, 2024. It is now read-only.

Commit

Permalink
TileRenderer: get correct fade-time for proxies
Browse files Browse the repository at this point in the history
  • Loading branch information
hjanetzek committed Sep 19, 2014
1 parent e1d9f36 commit 138ff4c
Showing 1 changed file with 168 additions and 0 deletions.
168 changes: 168 additions & 0 deletions vtm-tests/test/org/oscim/layers/tile/TileRendererTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
package org.oscim.layers.tile;

import static org.fest.assertions.api.Assertions.assertThat;

import org.junit.Test;
import org.oscim.layers.tile.MapTile.TileNode;
import org.oscim.renderer.MapRenderer;

public class TileRendererTest {

static {
/* makes default minFadeTime == 1000 */
MapRenderer.frametime = 1050;
}

static TileNode makeNode(int fadeTime, TileNode parent) {
TileNode n = new TileNode();
n.item = new MapTile(n, 0, 0, 0);
n.item.fadeTime = fadeTime;

if (parent == null) {
// root node is its own parent
n.parent = n;
} else {
parent.child00 = n;
n.parent = parent;
}

return n;
}

@Test
public void shouldGetMinFadeTimeOf1000() {

TileNode r = makeNode(0, null);
TileNode n = makeNode(0, r);

long fadeTime = TileRenderer.getMinFade(n.item, 0);

assertThat(fadeTime).isEqualTo(1000);
}

@Test
public void shouldGetMinFadeTimeFromParent() {

TileNode r = makeNode(100, null);
TileNode n = makeNode(0, r);

long fadeTime = TileRenderer.getMinFade(n.item, 0);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldGetMinFadeTimeFromGrandparent() {

TileNode r = makeNode(100, null);
TileNode p = makeNode(200, r);
TileNode n = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(n.item, 0);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldGetMinFadeTimeFromParentWhenParentsTimeIsLessThanGrandpasTime() {

TileNode r = makeNode(200, null);
TileNode p = makeNode(100, r);
TileNode n = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(n.item, 0);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldGetMinFadeTimeFromParentForParentProxy() {

TileNode r = makeNode(200, null);
TileNode p = makeNode(100, r);
TileNode n = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(n.item, -1);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldNotGetMinFadeTimeFromGradparentForParentProxy() {
/* (as the grandparent will not be locked) */

TileNode r = makeNode(100, null);
TileNode p = makeNode(200, r);
TileNode n = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(n.item, -1);

assertThat(fadeTime).isNotEqualTo(100);
assertThat(fadeTime).isEqualTo(200);
}

@Test
public void shouldGetMinFadeTimeFromParentForChildProxy() {

TileNode r = makeNode(200, null);
TileNode p = makeNode(100, r);
TileNode n = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(n.item, 1);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldGetMinFadeTimeFromGrandparentForChildProxy() {

TileNode r = makeNode(100, null);
TileNode p = makeNode(200, r);
TileNode c = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(c.item, 1);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldGetMinFadeTimeFromGrandgrandparentForChildProxy() {

TileNode r = makeNode(100, null);
TileNode gp = makeNode(200, r);
TileNode p = makeNode(200, gp);
TileNode c = makeNode(0, p);

long fadeTime = TileRenderer.getMinFade(c.item, 1);

assertThat(fadeTime).isEqualTo(100);
}

@Test
public void shouldGetMinFadeTimeFromChild() {

TileNode r = makeNode(100, null);
TileNode p = makeNode(200, r);
TileNode n = makeNode(0, p);

n.child00 = makeNode(50, n);

long fadeTime = TileRenderer.getMinFade(n.item, 0);

assertThat(fadeTime).isEqualTo(50);
}

@Test
public void shouldGetMinFadeTimeForParentFromChild() {

TileNode r = makeNode(100, null);
TileNode p = makeNode(200, r);
TileNode n = makeNode(0, p);

n.child00 = makeNode(50, n);

long fadeTime = TileRenderer.getMinFade(p.item, -1);

assertThat(fadeTime).isEqualTo(50);
}
}

0 comments on commit 138ff4c

Please sign in to comment.