[78] | 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()); |
---|
[79] | 41 | assertTrue(accesses.get(0).getSelected() instanceof Model); |
---|
[78] | 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 | |
---|
[79] | 54 | Model model = Model.build(objects); |
---|
[78] | 55 | { |
---|
[79] | 56 | assertEquals(3, model.getParts().size()); |
---|
| 57 | assertEquals(6, model.getNeuroDefs().size()); |
---|
| 58 | assertEquals(2, model.getJoints().size()); |
---|
[78] | 59 | |
---|
[79] | 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); |
---|
[78] | 67 | |
---|
[79] | 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); |
---|
[78] | 71 | } |
---|
| 72 | |
---|
[79] | 73 | |
---|
[78] | 74 | } |
---|
| 75 | } |
---|