You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by go...@apache.org on 2013/01/26 01:29:28 UTC
svn commit: r1438791 - in
/flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml:
MXMLNumberNodeTests.java MXMLPropertySpecifierNodeNumberTests.java
Author: gordonsmith
Date: Sat Jan 26 00:29:28 2013
New Revision: 1438791
URL: http://svn.apache.org/viewvc?rev=1438791&view=rev
Log:
Falcon unit tests: Added more parsing tests for <Number> tags and properties of type Number, to check whether we can handle hex integers, scientific notation, NaN, and positive negative Infinity.
This revealed a bug: If p is a property of type Number, <MyComp p="1"/> currently produces an MXMLIntTag to represent the value. It should produce a MXMLNumberTag.
Modified:
flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNumberNodeTests.java
flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNodeNumberTests.java
Modified: flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNumberNodeTests.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNumberNodeTests.java?rev=1438791&r1=1438790&r2=1438791&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNumberNodeTests.java (original)
+++ flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNumberNodeTests.java Sat Jan 26 00:29:28 2013
@@ -80,6 +80,114 @@ public class MXMLNumberNodeTests extends
}
@Test
+ public void MXMLNumberNode_integer()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> 1 </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(1.0));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_hexInteger_upperCase()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> 0xABCDEF </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is((double)0xABCDEF));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_hexInteger_lowerCase()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> -0Xabcdef </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is((double)-0xABCDEF));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_fractional()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> 0.5 </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(0.5));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_scientific_lowerCase_negExp()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> -1.5e-10 </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(-1.5e-10));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_scientific_upperCase_posExp()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> -1.5E+10 </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(-1.5e10));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_NaN()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> NaN </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(Double.NaN));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_posInfinity()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> Infinity </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(Double.POSITIVE_INFINITY));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
+ public void MXMLNumberNode_negInfinity()
+ {
+ String[] code = new String[]
+ {
+ "<fx:Number> -Infinity </fx:Number>"
+ };
+ IMXMLNumberNode node = getMXMLNumberNode(code);
+ assertThat("getValue", node.getValue(), is(Double.NEGATIVE_INFINITY));
+ //assertThat("getExpressionNode", node.getExpressionNode(), is((IASNode)null));
+ }
+
+ @Test
public void MXMLNumberNode_with_databinding()
{
String[] code = new String[]
Modified: flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNodeNumberTests.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNodeNumberTests.java?rev=1438791&r1=1438790&r2=1438791&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNodeNumberTests.java (original)
+++ flex/falcon/trunk/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLPropertySpecifierNodeNumberTests.java Sat Jan 26 00:29:28 2013
@@ -25,6 +25,7 @@ import static org.hamcrest.core.Is.is;
import org.apache.flex.compiler.tree.ASTNodeID;
import org.apache.flex.compiler.tree.mxml.IMXMLNumberNode;
import org.apache.flex.compiler.tree.mxml.IMXMLPropertySpecifierNode;
+import org.junit.Ignore;
import org.junit.Test;
/**
@@ -48,37 +49,315 @@ public class MXMLPropertySpecifierNodeNu
return node;
}
+ @Ignore // 1 is causing MXMLIntNode instead of MXMLDoubleNode to get created
@Test
- public void MXMLPropertySpecifierNode_Number_attribute_fractional()
+ public void MXMLPropertySpecifierNode_Number_integer_attribute()
{
String[] code = new String[]
{
- "<MyComp p=' -1.5 '>"
+ "<MyComp p=' 1 '>"
};
- testMXMLPropertySpecifierNode(code, -1.5);
+ testMXMLPropertySpecifierNode(code, 1);
}
+ @Ignore
@Test
- public void MXMLPropertySpecifierNode_Number_tag_text_fractional()
+ public void MXMLPropertySpecifierNode_Number_integer_tag_text()
{
String[] code = new String[]
{
"<MyComp>",
- " <p> -1.5 </p>",
+ " <p> 1 </p>",
"</MyComp>"
};
- testMXMLPropertySpecifierNode(code, -1.5);
+ testMXMLPropertySpecifierNode(code, 1);
}
@Test
- public void MXMLPropertySpecifierNode_Number_tag_tag_fractional()
+ public void MXMLPropertySpecifierNode_Number_integer_tag_tag()
{
String[] code = new String[]
{
"<MyComp>",
- " <p><fx:Number> -1.5 </fx:Number></p>",
+ " <p><fx:Number> 1 </fx:Number></p>",
"</MyComp>"
};
- testMXMLPropertySpecifierNode(code, -1.5);
+ testMXMLPropertySpecifierNode(code, 1);
+ }
+
+ @Ignore
+ @Test
+ public void MXMLPropertySpecifierNode_Number_hexInteger_upperCase_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' 0xABCDEF '>"
+ };
+ testMXMLPropertySpecifierNode(code, (double)0xABCDEF);
+ }
+
+ @Ignore
+ @Test
+ public void MXMLPropertySpecifierNode_Number_hexInteger_upperCase_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> 0xABCDEF </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, (double)0xABCDEF);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_hexInteger_upperCase_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> 0xABCDEF </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, (double)0xABCDEF);
+ }
+
+ @Ignore
+ @Test
+ public void MXMLPropertySpecifierNode_Number_hexInteger_lowerCase_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' -0Xabcdef '>"
+ };
+ testMXMLPropertySpecifierNode(code, (double)-0xABCDEF);
+ }
+
+ @Ignore
+ @Test
+ public void MXMLPropertySpecifierNode_Number_hexInteger_lowerCase_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> -0Xabcdef </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, (double)-0xABCDEF);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_hexInteger_lowerCase_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> -0Xabcdef </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, (double)-0xABCDEF);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_fractional_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' 0.5 '>"
+ };
+ testMXMLPropertySpecifierNode(code, 0.5);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_fractional_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> 0.5 </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, 0.5);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_fractional_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> 0.5 </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, 0.5);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_scientific_lowerCase_negExp_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' -1.5e-10 '>"
+ };
+ testMXMLPropertySpecifierNode(code, -1.5e-10);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_scientific_lowerCase_negExp_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> -1.5e-10 </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, -1.5e-10);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_scientific_lowerCase_negExp_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> -1.5e-10 </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, -1.5e-10);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_scientific_upperCase_posExp_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' -1.5E+10 '>"
+ };
+ testMXMLPropertySpecifierNode(code, -1.5e10);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_scientific_upperCase_posExp_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> -1.5E+10 </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, -1.5e10);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_scientific_upperCase_posExp_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> -1.5E+10 </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, -1.5e10);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_NaN_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' NaN '>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.NaN);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_NaN_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> NaN </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.NaN);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_NaN_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> NaN </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.NaN);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_posInfinity_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' Infinity '>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.POSITIVE_INFINITY);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_posInfinity_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> Infinity </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.POSITIVE_INFINITY);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_posInfinity_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> Infinity </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.POSITIVE_INFINITY);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_negInfinity_attribute()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp p=' -Infinity '>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.NEGATIVE_INFINITY);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_negInfinity_tag_text()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p> -Infinity </p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.NEGATIVE_INFINITY);
+ }
+
+ @Test
+ public void MXMLPropertySpecifierNode_Number_negInfinity_tag_tag()
+ {
+ String[] code = new String[]
+ {
+ "<MyComp>",
+ " <p><fx:Number> -Infinity </fx:Number></p>",
+ "</MyComp>"
+ };
+ testMXMLPropertySpecifierNode(code, Double.NEGATIVE_INFINITY);
}
}