Java Quiz


#341

"HZdZG_"
geht doch auch, das bisschen probieren :wink:


#342

bevor das ganz in Vergessenheit gerÀt kurz die Auflösung von #330:

Es gibt eine Exception weil progressProperty() nur aus dem FX-Eventloop heraus aufgerufen werden darf


bye
TT


#343

[QUOTE=SlaterB]"HZdZG_"
geht doch auch, das bisschen probieren ;)[/QUOTE]
Was verstehst du unter “bisschen probieren”?

[QUOTE=Timothy_Truckle;129343]bevor das ganz in Vergessenheit gerÀt kurz die Auflösung von #330:

Es gibt eine Exception weil progressProperty() nur aus dem FX-Eventloop heraus aufgerufen werden darf


bye
TT[/QUOTE]
Interessant. Nach der Doku aber
"The Worker’s progress can be monitored via three different properties, totalWork, workDone, and progress. These properties are set by the actual implementation of the Worker interface, but can be observed by anybody."
Also ich glaube dir natĂŒrlich, dennoch merkwĂŒrdig.


#344

probieren:
“aa” fĂŒhrt nicht zu Hashcode ~Integer.MAX_VALUE, paar Buchstaben mehr mĂŒssen es sein,
bei 6 dann fĂŒr den richtigen Wert der erste Buchstabe alles entscheidend, geht mit Faktor 31 ein,
wenn dort H gefunden, dann Rest nach und nach auch

< 15 Min., aber im Nachhinein immer leichter :wink:


#345

[quote=TMII]“The Worker’s progress can be monitored via three different properties, totalWork, workDone, and progress. These properties are set by the actual implementation of the Worker interface, but can be observed by anybody.”
Also ich glaube dir natĂŒrlich, dennoch merkwĂŒrdig.[/quote]Es gibt in der Klasse [JAPI]Task[/JAPI] eigene update* und set* Methoden fĂŒr diese Properties. Wenn man die benutzt ist alle OK


bye
TT


#346

hmmm - hab ich mal irgendwo gefunden gehabt

Schreib symmetrische split <-> unsplit Methoden, so dass die folgenden Tests grĂŒn werden

@Test
public void simpleCase() {
	Assert.assertEquals(unsplit(split("barfoo", 'r'), 'r'), "barfoo");
}

@Test
public void noMatch() {
	Assert.assertEquals(unsplit(split("barfoo", 'z'), 'z'), "barfoo");
}

@Test
public void withNewline() {
	Assert.assertEquals(unsplit(split("
", 'x'), 'x'), "
");
}

@Test
public void withWhitespaces() {
	Assert.assertEquals(unsplit(split(" ", 'x'), 'x'), " ");
}

@Test
public void withDelimiterAtTheEnd() {
	Assert.assertEquals(unsplit(split("barbar", 'r'), 'r'), "barbar");
}```

keine Garantie aber ĂŒber sinnvoll etc

#347

Da hat ja mal jemand TDD so gar nicht verstanden


bye
TT


#348
import junit.framework.Assert;

import org.junit.Test;

public class SplitUnsplit
{
    @Test
    public void simpleCase() {
        Assert.assertEquals(unsplit(split("barfoo", 'r'), 'r'), "barfoo");
    }

    @Test
    public void noMatch() {
        Assert.assertEquals(unsplit(split("barfoo", 'z'), 'z'), "barfoo");
    }
     
    @Test
    public void withNewline() {
        Assert.assertEquals(unsplit(split("
", 'x'), 'x'), "
");
    }
     

    @Test
    public void withWhitespaces() {
        Assert.assertEquals(unsplit(split(" ", 'x'), 'x'), " ");
    }
     
    @Test
    public void withDelimiterAtTheEnd() {
        Assert.assertEquals(unsplit(split("barbar", 'r'), 'r'), "barbar");
    }
    
    private Object split(String string, char c)
    {
        return string+c;
    }
    private String unsplit(Object split, char c)
    {
        if ("barfoor".equals(split))
        {
            return "barfoo";
        }
        if ("barfooz".equals(split))
        {
            return "barfoo";
        }
        if ("
x".equals(split))
        {
            return "
";
        }
        if (" x".equals(split))
        {
            return " ";
        }
        if ("barbarr".equals(split))
        {
            return "barbar";
        }
        throw null;
    }

}

Alles grĂŒn :slight_smile:

(Meine Unsicherheit in bezug auf die Frage, ob TDD funktioniert, resultiert nicht zuletzt aus der Tatsache, dass ich schon genug MĂŒll gesehen habe, um davon auszugehen, dass es Leute gibt, die das tatsĂ€chlich so oder so Ă€hnlich lösen wĂŒrden
 :sick: )


#349

das geht aber kĂŒrzer

public String split(String s, char c){
return s;
}

public String unsplit(String s, char c){
return s;
}

#350

warum muss aus allem eine TDD Diskussion gemacht werden ?

Ist ne Aufgabe die ich mal gesehen habe, hier ist das JavaQuiz Thema, ergo hab ich es hier hingepostet



#351

TDD ist zumindest deiner Signatur nach doch das Thema Nummer 1 :smiley:

Mal im Ernst: Ging es nicht gerade um eine “sinnlose grĂŒn-mach-Implementierung”? Wenn nicht, hĂ€tte die Frage vielleicht elaboriert werden mĂŒssen :rolleyes:


#352

[quote=Marco13]Ging es nicht gerade um eine “sinnlose grĂŒn-mach-Implementierung”?[/quote]IMHO ging es ehr im sinnlose Tests, das Verhalten des Codes nicht fixieren.

bye
TT


#353

Was wird hier ausgegeben?

        System.out.println(randomString(-229985452) + " " + randomString(-147909649));
    }
    
    private static String randomString(int i) {
        Random ran = new Random(i);
        StringBuilder sb = new StringBuilder();
        while (true) {
            int k = ran.nextInt(27);
            if (k == 0)
                break;

            sb.append((char) ('`' + k));
        }

        return sb.toString();
    }```

[SPOILER]Keine echte Quiz-Frage, aber interessant genug fĂŒr diesen Thread ;) [/SPOILER]

#354

“Irgendein lesbarer Text” - aber welcher, da kann man natĂŒrlich nur raten



#355

Das nenn ich mal geschickt gewÀhlte seeds!


#356

Spannend, wie bist du denn darauf gekommen?


#357

System.out.println(randomString(567442477) + "." + randomString(17685613) + "-" + randomString(16668795) + "." + randomString(392911));

oder auch

System.out.println(randomString(332945579) + " " + randomString(526527846));

:wink:


#358

Das ist Joel Spolskys Lieblingsfrage auf SO :wink:


#359

Vielleicht zu einfach, da zu viele Freiheitsgrade? Wie auch immer: Was muss man zwischen den //----Strichen einfĂŒgen, damit das zu einem compilerbaren CodestĂŒck wird? :

//-----------------------------------------------------------------------------
...
//-----------------------------------------------------------------------------

public class Temp
{
    public static void main(String[] args)
    {
        Example<?> example = null;
        ExampleA a = example.get();
        ExampleB b = example.get();
    }
}

EDIT: Als KlĂ€rung zur ersten Antwort: Es ist gemeint, das der gesamte Code oben, abgespeichert in einer Datei “Temp.java”, ohne Fehler compilierbar ist (aber natĂŒrlich nicht (“ohne Fehler”) ausfĂŒhrbar).


#360

Ich beantworte einfach mal die Frage: “Wie muss die Klasse Example aussehen, damit das zu einem kompilierbaren CodestĂŒck wird?” - Andernfalls: das kompiliert doch - in AbhĂ€ngigkeit davon, wie die Klassen Example, ExampleA und ExampleB, die im selben Package liegen, aussehen.

Example.java
[spoiler]public class Example<T> { public static <U> U get() { return null; } }

Das kompiliert nicht nur, sondern ist auch lauffÀhig.[/spoiler]