aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/test/java.io/HairyGraph.java
blob: ca9a7135381983661ab2033abd0f5963d326ce46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

import java.io.*;

class GraphNode implements Serializable
{
  GraphNode( String s )
  {
    this.s = s;
  }

  public String toString()
  {
    return this.s;
  }
  
  String s;
  GraphNode a;
  GraphNode b;
  GraphNode c;
  GraphNode d;
}


public class HairyGraph implements Serializable
{
  GraphNode A;
  GraphNode B;
  GraphNode C;
  GraphNode D;
  
  HairyGraph()
  {
    A = new GraphNode( "A" );
    B = new GraphNode( "B" );
    C = new GraphNode( "C" );
    D = new GraphNode( "D" );

    A.a = B;
    A.b = C;
    A.c = D;
    A.d = A;
    
    B.a = C;
    B.b = D;
    B.c = A;
    B.d = B;

    C.a = D;
    C.b = A;
    C.c = B;
    C.d = C;
    
    D.a = A;
    D.b = B;
    D.c = C;
    D.d = D;
  }

  public boolean equals( Object o )
  {
    HairyGraph hg = (HairyGraph)o;

    return (A.a == B.d) && (A.a == C.c) && (A.a == D.b)
      && (A.b == B.a) && (A.b == C.d) && (A.b == D.c)
      && (A.c == B.b) && (A.c == C.a) && (A.c == D.d)
      && (A.d == B.c) && (A.d == C.b) && (A.d == D.a);
  }

  void printOneLevel( GraphNode gn )
  {
    System.out.println( "GraphNode< " + gn + ": " + gn.a + ", " + gn.b
			+ ", " + gn.c + ", " + gn.d + " >" );
  }
  
}