1 | package com.framsticks.parsers; |
---|
2 | |
---|
3 | import com.framsticks.model.*; |
---|
4 | import com.framsticks.model.Package; |
---|
5 | import com.framsticks.params.*; |
---|
6 | import com.framsticks.params.types.FloatParam; |
---|
7 | import com.framsticks.util.Point3d; |
---|
8 | import org.apache.log4j.PropertyConfigurator; |
---|
9 | import org.junit.Test; |
---|
10 | |
---|
11 | import java.util.List; |
---|
12 | |
---|
13 | import static org.junit.Assert.*; |
---|
14 | |
---|
15 | /** |
---|
16 | * Author: Piotr Śniegowski |
---|
17 | */ |
---|
18 | public class F0ParserTest { |
---|
19 | |
---|
20 | @Test |
---|
21 | public void testParser() throws Exception { |
---|
22 | PropertyConfigurator.configure(getClass().getResource("/log4j.properties")); |
---|
23 | //testing schema |
---|
24 | Schema schema = new Schema(Schema.getDefaultDefinitionAsStream()); |
---|
25 | |
---|
26 | { |
---|
27 | FramsClass joint = schema.getRegistry().getInfoFromCache("j"); |
---|
28 | Param dx = joint.getParamEntry("dx"); |
---|
29 | assertEquals(FloatParam.class, dx.getClass()); |
---|
30 | assertEquals(21, schema.getNeuroClasses().size()); |
---|
31 | assertEquals("delta.x", dx.getName()); |
---|
32 | assertEquals(-2.0, dx.getMin(Double.class), 0.0); |
---|
33 | } |
---|
34 | |
---|
35 | Package.register(schema.getRegistry()); |
---|
36 | //testing parser |
---|
37 | List<AccessInterface> accesses = new F0Parser(schema, F0ParserTest.class.getResourceAsStream("/parsers/f0_example.txt")).parse(); |
---|
38 | |
---|
39 | { |
---|
40 | assertEquals(12, accesses.size()); |
---|
41 | assertTrue(accesses.get(0).getSelected() instanceof Model); |
---|
42 | assertEquals("1,2,3,\"dsadsa,,,,", accesses.get(5).get("i", String.class)); |
---|
43 | assertEquals("|:p=0.25,r=1", accesses.get(7).get("d", String.class)); |
---|
44 | assertEquals("@:p=0.25", accesses.get(10).get("d", String.class)); |
---|
45 | } |
---|
46 | |
---|
47 | List<Object> objects = Util.stripAccessInterface(accesses); |
---|
48 | { |
---|
49 | assertEquals(Part.class, objects.get(1).getClass()); |
---|
50 | assertEquals(Joint.class, objects.get(4).getClass()); |
---|
51 | assertEquals(NeuroDef.class, objects.get(6).getClass()); |
---|
52 | } |
---|
53 | |
---|
54 | Model model = Model.build(objects); |
---|
55 | { |
---|
56 | assertEquals(3, model.getParts().size()); |
---|
57 | assertEquals(6, model.getNeuroDefs().size()); |
---|
58 | assertEquals(2, model.getJoints().size()); |
---|
59 | |
---|
60 | assertEquals(new Integer(0), model.getJoints().get(0).part1); |
---|
61 | assertEquals(new Integer(1), model.getJoints().get(0).part2); |
---|
62 | assertEquals(new Integer(1), model.getNeuroDefs().get(0).part); |
---|
63 | assertEquals(new Integer(-1), model.getNeuroDefs().get(0).joint); |
---|
64 | assertEquals("|:p=0.25,r=1", model.getNeuroDefs().get(1).details); |
---|
65 | assertEquals("N", model.getNeuroDefs().get(3).details); |
---|
66 | assertEquals(new Integer(-1), model.getNeuroDefs().get(4).part); |
---|
67 | |
---|
68 | assertEquals(2.0, model.getParts().get(1).getPosition().x, 0.0); |
---|
69 | assertTrue(model.getParts().get(2).getPosition().sub(new Point3d(2.27236, -0.0792596, -0.958924)).length() < 0.0001); |
---|
70 | assertTrue(model.getParts().get(2).getOrientation().y.sub(new Point3d(0.870277, -0.404792, 0.280644)).length() < 0.0001); |
---|
71 | } |
---|
72 | |
---|
73 | |
---|
74 | } |
---|
75 | } |
---|