Tests for methods of Float
[jalview.git] / utils / test / JalviewJSTest.java
1 package test;
2 import java.awt.BorderLayout;
3 import java.awt.ComponentOrientation;
4 import java.awt.Container;
5 import java.awt.Dimension;
6 import java.awt.Font;
7 import java.awt.GridLayout;
8 import java.awt.MediaTracker;
9 import java.io.File;
10 import java.text.DecimalFormat;
11 import java.util.HashMap;
12 import java.util.Locale;
13 import java.util.Map;
14
15 import javax.swing.ImageIcon;
16 import javax.swing.JButton;
17 import javax.swing.JCheckBox;
18 import javax.swing.JCheckBoxMenuItem;
19 import javax.swing.JFrame;
20 import javax.swing.JLabel;
21 import javax.swing.JMenu;
22 import javax.swing.JMenuBar;
23 import javax.swing.JPanel;
24 import javax.swing.JRadioButton;
25 import javax.swing.JRadioButtonMenuItem;
26 import javax.swing.SwingConstants;
27 import javax.swing.WindowConstants;
28 import javax.swing.border.TitledBorder;
29
30 /**
31  * A class with a main method entry point for ad hoc tests of JalviewJS
32  * behaviour. The J2S transpiler should generate an html entry point for this
33  * class, allowing comparison between Java and Javascript execution.
34  */
35 public class JalviewJSTest extends JPanel
36 {
37   public static void main(String[] args)
38   {
39     new JalviewJSTest().doTest4();
40   }
41
42   void doTest4() 
43   {
44           Float fl = new Float(0f);
45           System.out.println(fl.isInfinite());
46           System.out.println(fl.isNaN());
47
48           System.out.println(Float.isInfinite(0f));
49           System.out.println(Float.isFinite(0f));
50           System.out.println(Float.isNaN(0f));
51   }
52
53   void doTest3() 
54   {
55             System.out.println("Mungo".toLowerCase(Locale.getDefault()));
56             System.out.println("Mungo".toLowerCase(Locale.ENGLISH));
57     System.out.println("Mungo".toLowerCase(Locale.ROOT));
58   }
59   
60   void doTest2() {
61           Map<File, String> map = new HashMap<>();
62           File f1 = new File("/var/folders/y/xyz");
63           File f2 = new File("/var/folders/y/xyz");
64           map.put(f1,  "hello world");
65           System.out.println("f1.equals(f2) = " + f1.equals(f2));
66           System.out.println("f1 hashCode = " + f1.hashCode());
67           System.out.println("f2 hashCode = " + f2.hashCode());
68           System.out.println(map.get(f2));
69   }
70   /**
71    * Put some content in a JFrame and show it
72    */
73   void doTest()
74   {
75           System.out.println("ab;c;".split(";"));
76     new DecimalFormat("###,###").format((Integer) 1);
77     JFrame main = new JFrame();
78     main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
79     JMenu menu = new JMenu("testing");
80     menu.setHorizontalAlignment(SwingConstants.RIGHT);
81     main.setContentPane(getVisualPaneContent(menu));
82     main.setJMenuBar(new JMenuBar());
83     main.getJMenuBar().add(menu);
84     main.pack();
85     main.setVisible(true);
86   }
87
88   /**
89    * Builds a cut-down 'Preferences Visual tab' for a minimal test of layout
90    * problems
91  * @param menu 
92    */
93   Container getVisualPaneContent(JMenu menu)
94   {
95     JPanel panel = new JPanel();
96     panel.setPreferredSize(new Dimension(400, 500));
97     panel.setOpaque(true);
98     panel.setLayout(new BorderLayout());
99
100     JPanel firstColumn = new JPanel();
101     firstColumn.setLayout(new GridLayout(10, 1));
102     firstColumn.setBorder(new TitledBorder("column 1"));
103
104     /*
105      * bug 21/08/18:
106      * - checkbox label and text extend outside the enclosing panel in JS
107      */
108     Font font = new Font("Verdana", Font.PLAIN, 11);
109
110     JLabel l1 = new JLabel(getImage("test2.png"));
111     l1.setText("trailing right");
112     l1.setHorizontalTextPosition(SwingConstants.TRAILING);
113     l1.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
114     l1.setHorizontalAlignment(SwingConstants.RIGHT);
115
116     JLabel l2 = new JLabel(getImage("test2.png"));
117     l2.setText("leading left");
118     l2.setFont(font);
119     l2.setHorizontalTextPosition(SwingConstants.LEADING);
120     l2.setHorizontalAlignment(SwingConstants.LEFT);
121
122     JButton b1 = new JButton("right left");
123     b1.setIcon(getImage("test2.png"));
124     b1.setFont(font);
125     b1.setHorizontalTextPosition(SwingConstants.RIGHT);
126     b1.setHorizontalAlignment(SwingConstants.LEFT);
127
128     firstColumn.add(l1);
129     firstColumn.add(l2);
130     firstColumn.add(b1);
131
132     
133     JCheckBox cb3 = new JCheckBox("leading,left-to-right,rt");
134     cb3.setFont(font);
135     cb3.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
136     cb3.setHorizontalTextPosition(SwingConstants.LEADING);
137     cb3.setHorizontalAlignment(SwingConstants.TRAILING);
138
139     JCheckBox cb4 = new JCheckBox("leading,right-to-left");
140     cb4.setFont(font);
141     cb4.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
142     cb4.setHorizontalTextPosition(SwingConstants.LEADING);
143
144     JCheckBox cb5 = new JCheckBox("trailing,left-to-right");
145     cb5.setFont(font);
146     cb5.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
147     cb5.setHorizontalTextPosition(SwingConstants.TRAILING);
148
149     JRadioButton rb1 = new JRadioButton("trailing,right-to-left");
150     rb1.setFont(font);
151     rb1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
152     rb1.setHorizontalTextPosition(SwingConstants.TRAILING);
153
154     JRadioButton rb2 = new JRadioButton("right,left-to-right");
155     rb2.setFont(font);
156     rb2.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
157     rb2.setHorizontalTextPosition(SwingConstants.RIGHT);
158
159     JRadioButton rb3 = new JRadioButton("right,right-to-left");
160     rb3.setFont(font);
161     rb3.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
162     rb3.setHorizontalTextPosition(SwingConstants.RIGHT);
163
164
165     
166     firstColumn.add(cb3);
167     firstColumn.add(cb4);
168     firstColumn.add(cb5);
169     firstColumn.add(rb1);
170     firstColumn.add(rb2);
171     firstColumn.add(rb3);
172     firstColumn.setBounds(200, 20, 200, 500);
173
174     JCheckBoxMenuItem cb3m = new JCheckBoxMenuItem("leading,left-to-right");
175     cb3m.setFont(font);
176     cb3m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
177     cb3m.setHorizontalTextPosition(SwingConstants.LEADING);
178
179     JCheckBoxMenuItem cb4m = new JCheckBoxMenuItem("leading,right-to-left");
180     cb4m.setFont(font);
181     cb4m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
182     cb4m.setHorizontalTextPosition(SwingConstants.LEADING);
183
184     JCheckBoxMenuItem cb5m = new JCheckBoxMenuItem("trailing,left-to-right");
185     cb5m.setFont(font);
186     cb5m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
187     cb5m.setHorizontalTextPosition(SwingConstants.TRAILING);
188
189     JCheckBoxMenuItem cb6m = new JCheckBoxMenuItem("trailing,right-to-left");
190     cb6m.setFont(font);
191     cb6m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
192     cb6m.setHorizontalTextPosition(SwingConstants.TRAILING);
193
194     JRadioButtonMenuItem rb1m = new JRadioButtonMenuItem("trailing,right-to-left");
195     rb1m.setFont(font);
196     rb1m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
197     rb1m.setHorizontalTextPosition(SwingConstants.TRAILING);
198
199     JRadioButtonMenuItem rb2m = new JRadioButtonMenuItem("right,left-to-right");
200     rb2m.setFont(font);
201     rb2m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
202     rb2m.setHorizontalTextPosition(SwingConstants.RIGHT);
203
204     JRadioButtonMenuItem rb3m = new JRadioButtonMenuItem("right,right-to-left");
205     rb3m.setFont(font);
206     rb3m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
207     rb3m.setHorizontalTextPosition(SwingConstants.RIGHT);
208
209     JMenu m1 = new JMenu("left");
210     JMenu m2 = new JMenu("right");
211     menu.add(m1);
212     menu.add(m2);
213     m1.add(cb3m);
214     m2.add(cb4m);
215     m1.add(cb5m);
216     m2.add(cb6m);
217     m2.add(rb1m);
218     m1.add(rb2m);
219     m2.add(rb3m);
220     
221     JPanel theTab = new JPanel();
222     
223     theTab.setLayout(null);
224     theTab.add(firstColumn);
225     panel.add(theTab);
226
227     return panel;
228   }
229
230 private ImageIcon getImage(String name) {
231     ImageIcon icon = new ImageIcon(getClass().getResource(name));
232
233     while(icon.getImageLoadStatus() == MediaTracker.LOADING)
234                 try {
235                         Thread.sleep(10);
236                 } catch (InterruptedException e) {
237                 }
238     return icon;
239 }
240 }