PDA

View Full Version : [Frage] Test Methode


Megabit
27-01-2003, 20:32
Könnte einer einen kurzen BeispielCode posten wie er die Methode gelöst hat? ich hab keine Ahnung wie ich da anfangen soll....

danke

Filz
28-01-2003, 03:01
public class processTest
{
public static void main (String[] args)
{
byte[] test=new byte[100000];
byte[] result;

for (int i=0; i<100000; i++) testArray[fill]= 17; //mit Testwerten füllen...


MyEffect me= new MyEffect();
MyControlInterface mControl=(MyControlInterface) me.getControl("MyControl");

java.awt.Dimension size=new java.awt.Dimension(100,100);
Format testFormat=new RGBFormat(size, 100000, Format.byteArray , 1, 24,3,2,1,3,-1,0,-1);
//bzw entsprechend für AudioCodecs oder 32bit-Formate

me.setInputFormat(testFormat);
Format x=me.setOutputFormat(testFormat);

Buffer input=new Buffer();
Buffer output=new Buffer();

input.setFormat(testFormat);
input.setData(tes);
input.setLength(100000);
output.setFormat(testFormat);
output.setData(test);
output.setLength(100000);

me.process(input,output);

result=(byte[])output.getData();

/* und danach kannst du result[] überprüfen */



}



}


mfg

wolk
30-01-2003, 15:54
frage noch

wie überprüft ihr wirklich ob das ergebnis stimmt

wenn du einen effekt drüberlegst ala uhr (uhr wird über video geblendet)

soll ich dann nachher überprüfen ob die uhr im buffer drin ist, oda was ?

dankbar für ratschläge

gck
30-01-2003, 16:26
der Sinn der Testmethode ist, dass du zufällige Werte über einen fixen Inputstream mischst, d.h. bei Audio kannst z.b. einen Inputbuffer aus lauter nullen an das process() übergeben, das wiederum völlig zufällige Samples dazumischt -> jetzt berechnest du in der Testmethode dieses Mischen einfach nochmals nach und schaust, ob der Effekt richtig gearbeitet hast, indem du die sollwerte mit den istwerten vergleichst

-> natürlich musst du auch begin/end zeiten beachten etc..

meine Testklasse arbeitet so, dass wir eben diesen Inputbuffer mit lauter nullen jedesmal übergeben: start, endzeit, gain, gain der zugemischten Samples etc.. sowie die zuzumischenden Samples selber kommen aus dem Zufallsgenerator (Random aus java.util oder java.lang, keine Ahnung) -> wenn wir außerhalb des Beginn/Ende Intervalls liegen, müssen lauter nullen wieder rauskommen (nix gemischt), ansonsten die Zufallssamples durch 2 (absolute Stille mit Zufallssample gemischt)... Dann wird pro 16bit Sample verglichen, bei abweichung brechen wir ab und schreiben "Der Effekt funktioniert nicht" hin...

an sich eine relativ sinnlose, aber leider verlangte Aufgabe -> ich denke, es dient einfach dazu, dass auch fehler erkannt werden, die man mit dem bloßen Auge bzw. Ohr beim testen des Effektes nicht bemerken täte... (denn kein Mensch kann hören, ob als GainWert jetzt 0.3432 oder 0.3431 verwendet worden ist...)

wolk
30-01-2003, 16:57
das heisst, dass es für video reicht, zu überprüfen ob er zeichnet oder nicht

ich kann ja nicht überprüfen ob er jedes einzelne pixel richtig gesetzt hat oder ?

d.h. ich nehm nen buffer und füll ihn mit 0 werten
einen zweiten buffer mit 0 werten schick in in die process methode und wenn die zwei dann unterschiedlich sind, weiss ich dass der effekt arbeitet (ob er 100% richtig funktioniert kann man ja nur seeeehr umständlich überprüfen)

SuperStar
30-01-2003, 20:33
Hi,

ich bekomme dauernd die "Error java.lang.NullPointerException" beim aufrufen vom process.
Hat das sonst noch wer, bzw. hat wer ne Ahnung wieso das passiert? :confused:

grüsse,
SuperStar

Megabit
31-01-2003, 04:10
bei mir kommt auch ne java.lang.NullPointerException in der Zeile von : FlimBalk.process(input,output);

weiß einer rat?

EvilGuyMischa
31-01-2003, 04:23
Original geschrieben von Megabit
bei mir kommt auch ne java.lang.NullPointerException in der Zeile von : FlimBalk.process(input,output);

weiß einer rat?
du könntest die exception mit einer try catch schleife abfangen und einfach true ausgeben^

lifelikebmx
31-01-2003, 13:31
Original geschrieben von EvilGuyMischa

du könntest die exception mit einer try catch schleife abfangen und einfach true ausgeben^
yeah cooler tipp, werd ich um mein ganzes programm geben und jede exception mit "sorry not yet implemented" oder so abfangen ahhaahah

------------------------------------------------------------------
www.lifelikebmx.com
Siehe Forum Regeln (unten), welche Textformatierungscodes Du in Deinem Beitrag benutzen darfst.

Megabit
31-01-2003, 17:34
danke, für diese WUNDERBAREN TIPS :P

Megabit
31-01-2003, 20:13
habs schon gefunden .... da war eine zahl falsch ,grummel