source: java/main/src/test/java/com/framsticks/parsers/F0ParserTest.java @ 79

Last change on this file since 79 was 79, checked in by psniegowski, 11 years ago

Simplify f0 class organization.

File size: 2.6 KB
Line 
1package com.framsticks.parsers;
2
3import com.framsticks.model.*;
4import com.framsticks.model.Package;
5import com.framsticks.params.*;
6import com.framsticks.params.types.FloatParam;
7import com.framsticks.util.Point3d;
8import org.apache.log4j.PropertyConfigurator;
9import org.junit.Test;
10
11import java.util.List;
12
13import static org.junit.Assert.*;
14
15/**
16 * Author: Piotr Śniegowski
17 */
18public 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}
Note: See TracBrowser for help on using the repository browser.