Skip to content
This repository was archived by the owner on Jul 26, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
Binary file not shown.
17,337 changes: 17,337 additions & 0 deletions PointCloud.Test/NUnit-net-4.0/nunit.framework.xml

Large diffs are not rendered by default.

Binary file added PointCloud.Test/NUnit-net-4.0/nunit.testdata.dll
Binary file not shown.
Binary file not shown.
Binary file added PointCloud.Test/NUnit-net-4.0/nunitlite.dll
Binary file not shown.
Binary file not shown.
Binary file not shown.
19 changes: 19 additions & 0 deletions PointCloud.Test/PCDReaderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,5 +95,24 @@ public void FileReadCompleteTest()
Assert.AreEqual(0, cloud[0].Z, 0.000001);
}

[Test]
public void BinFileReadCompleteTest()
{
PCDReader<PointXYZRGBA> reader = new PCDReader<PointXYZRGBA>();
PointCloud<PointXYZRGBA> cloud = reader.Read("testbin.pcd");

Assert.AreEqual(63940, cloud.Points.Count);


Assert.AreEqual(0, cloud[0].X, 0.000001);
Assert.AreEqual(1721.136, cloud[0].Y, 0.000001);
Assert.AreEqual(502.9354, cloud[0].Z, 0.000001);
Assert.AreEqual(0x00, cloud[0].R);
Assert.AreEqual(0x00, cloud[0].G);
Assert.AreEqual(0x80, cloud[0].B);
Assert.AreEqual(0x3f, cloud[0].A);
}


}
}
259 changes: 259 additions & 0 deletions PointCloud.Test/PCDWriterTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
/*
Pointcloud library for .NET
Copyright (C) 2013 M. Hofman

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using PointCloud.io;

namespace PointCloud.Test
{
[TestFixture]
public class PCDWriterTest
{
[Test]
public void BinaryFileWriteTest()
{
var pw = new PCDWriter();
List<PointXYZRGBA> plist = new List<PointXYZRGBA>(){
new PointXYZRGBA(0.93773f,0.33763f,0f, 0,0,0,0),
new PointXYZRGBA(0.90805f,0.35641f,0, 0,0,0,0),
new PointXYZRGBA(0.81915f,0.32f,0, 0,0,0,0),
new PointXYZRGBA(0.97192f,0.278f,0, 0,0,0,0),
new PointXYZRGBA(0.944f,0.29474f,0, 0,0,0,0),
new PointXYZRGBA(0.98111f,0.24247f,0, 0,0,0,0),
new PointXYZRGBA(0.93655f,0.26143f,0, 0,0,0,0),
new PointXYZRGBA(0.91631f,0.27442f,0, 0,0,0,0),
new PointXYZRGBA(0.81921f,0.29315f,0, 0,0,0,0),
new PointXYZRGBA(0.90701f,0.24109f,0, 0,0,0,0),
new PointXYZRGBA(0.83239f,0.23398f,0, 0,0,0,0),
new PointXYZRGBA(0.99185f,0.2116f,0, 0,0,0,0),
new PointXYZRGBA(0.89264f,0.21174f,0, 0,0,0,0),
new PointXYZRGBA(0.85082f,0.21212f,0, 0,0,0,0),
new PointXYZRGBA(0.81044f,0.32222f,0, 0,0,0,0),
new PointXYZRGBA(0.74459f,0.32192f,0, 0,0,0,0),
new PointXYZRGBA(0.69927f,0.32278f,0, 0,0,0,0),
new PointXYZRGBA(0.8102f,0.29315f,0, 0,0,0,0),
new PointXYZRGBA(0.75504f,0.29765f,0, 0,0,0,0),
new PointXYZRGBA(0.8102f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(0.74995f,0.24723f,0, 0,0,0,0),
new PointXYZRGBA(0.68049f,0.29768f,0, 0,0,0,0),
new PointXYZRGBA(0.66509f,0.29002f,0, 0,0,0,0),
new PointXYZRGBA(0.69441f,0.2526f,0, 0,0,0,0),
new PointXYZRGBA(0.62807f,0.22187f,0, 0,0,0,0),
new PointXYZRGBA(0.58706f,0.32199f,0, 0,0,0,0),
new PointXYZRGBA(0.52125f,0.31955f,0, 0,0,0,0),
new PointXYZRGBA(0.49351f,0.32282f,0, 0,0,0,0),
new PointXYZRGBA(0.44313f,0.32169f,0, 0,0,0,0),
new PointXYZRGBA(0.58678f,0.2929f,0, 0,0,0,0),
new PointXYZRGBA(0.53436f,0.29164f,0, 0,0,0,0),
new PointXYZRGBA(0.59308f,0.24134f,0, 0,0,0,0),
new PointXYZRGBA(0.5357f,0.2444f,0, 0,0,0,0),
new PointXYZRGBA(0.50043f,0.31235f,0, 0,0,0,0),
new PointXYZRGBA(0.44107f,0.29711f,0, 0,0,0,0),
new PointXYZRGBA(0.50727f,0.22193f,0, 0,0,0,0),
new PointXYZRGBA(0.43957f,0.23976f,0, 0,0,0,0),
new PointXYZRGBA(0.8105f,0.21112f,0, 0,0,0,0),
new PointXYZRGBA(0.73555f,0.2114f,0, 0,0,0,0),
new PointXYZRGBA(0.69907f,0.21082f,0, 0,0,0,0),
new PointXYZRGBA(0.63327f,0.21154f,0, 0,0,0,0),
new PointXYZRGBA(0.59165f,0.21201f,0, 0,0,0,0),
new PointXYZRGBA(0.52477f,0.21491f,0, 0,0,0,0),
new PointXYZRGBA(0.49375f,0.21006f,0, 0,0,0,0),
new PointXYZRGBA(0.4384f,0.19632f,0, 0,0,0,0),
new PointXYZRGBA(0.43425f,0.16052f,0, 0,0,0,0),
new PointXYZRGBA(0.3787f,0.32173f,0, 0,0,0,0),
new PointXYZRGBA(0.33444f,0.3216f,0, 0,0,0,0),
new PointXYZRGBA(0.23815f,0.32199f,0, 0,0,0,0),
new PointXYZRGBA(0.3788f,0.29315f,0, 0,0,0,0),
new PointXYZRGBA(0.33058f,0.31073f,0, 0,0,0,0),
new PointXYZRGBA(0.3788f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(0.30249f,0.29189f,0, 0,0,0,0),
new PointXYZRGBA(0.23492f,0.29446f,0, 0,0,0,0),
new PointXYZRGBA(0.29465f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(0.23514f,0.24172f,0, 0,0,0,0),
new PointXYZRGBA(0.18836f,0.32277f,0, 0,0,0,0),
new PointXYZRGBA(0.15992f,0.32176f,0, 0,0,0,0),
new PointXYZRGBA(0.08642f,0.32181f,0, 0,0,0,0),
new PointXYZRGBA(0.039994f,0.32283f,0, 0,0,0,0),
new PointXYZRGBA(0.20039f,0.31211f,0, 0,0,0,0),
new PointXYZRGBA(0.1417f,0.29506f,0, 0,0,0,0),
new PointXYZRGBA(0.20921f,0.22332f,0, 0,0,0,0),
new PointXYZRGBA(0.13884f,0.24227f,0, 0,0,0,0),
new PointXYZRGBA(0.085123f,0.29441f,0, 0,0,0,0),
new PointXYZRGBA(0.048446f,0.31279f,0, 0,0,0,0),
new PointXYZRGBA(0.086957f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(0.3788f,0.21189f,0, 0,0,0,0),
new PointXYZRGBA(0.29465f,0.19323f,0, 0,0,0,0),
new PointXYZRGBA(0.23755f,0.19348f,0, 0,0,0,0),
new PointXYZRGBA(0.29463f,0.16054f,0, 0,0,0,0),
new PointXYZRGBA(0.23776f,0.16054f,0, 0,0,0,0),
new PointXYZRGBA(0.19016f,0.21038f,0, 0,0,0,0),
new PointXYZRGBA(0.15704f,0.21245f,0, 0,0,0,0),
new PointXYZRGBA(0.08678f,0.21169f,0, 0,0,0,0),
new PointXYZRGBA(0.012746f,0.32168f,0, 0,0,0,0),
new PointXYZRGBA(-0.075715f,0.32095f,0, 0,0,0,0),
new PointXYZRGBA(-0.10622f,0.32304f,0, 0,0,0,0),
new PointXYZRGBA(-0.16391f,0.32118f,0, 0,0,0,0),
new PointXYZRGBA(0.00088411f,0.29487f,0, 0,0,0,0),
new PointXYZRGBA(-0.057568f,0.29457f,0, 0,0,0,0),
new PointXYZRGBA(-0.0034333f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(-0.055185f,0.24185f,0, 0,0,0,0),
new PointXYZRGBA(-0.10983f,0.31352f,0, 0,0,0,0),
new PointXYZRGBA(-0.15082f,0.29453f,0, 0,0,0,0),
new PointXYZRGBA(-0.11534f,0.22049f,0, 0,0,0,0),
new PointXYZRGBA(-0.15155f,0.24381f,0, 0,0,0,0),
new PointXYZRGBA(-0.1912f,0.32173f,0, 0,0,0,0),
new PointXYZRGBA(-0.281f,0.3185f,0, 0,0,0,0),
new PointXYZRGBA(-0.30791f,0.32307f,0, 0,0,0,0),
new PointXYZRGBA(-0.33854f,0.32148f,0, 0,0,0,0),
new PointXYZRGBA(-0.21248f,0.29805f,0, 0,0,0,0),
new PointXYZRGBA(-0.26372f,0.29905f,0, 0,0,0,0),
new PointXYZRGBA(-0.22562f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(-0.25035f,0.2371f,0, 0,0,0,0),
new PointXYZRGBA(-0.29941f,0.31191f,0, 0,0,0,0),
new PointXYZRGBA(-0.35845f,0.2954f,0, 0,0,0,0),
new PointXYZRGBA(-0.29231f,0.22236f,0, 0,0,0,0),
new PointXYZRGBA(-0.36101f,0.24172f,0, 0,0,0,0),
new PointXYZRGBA(-0.0034393f,0.21129f,0, 0,0,0,0),
new PointXYZRGBA(-0.07306f,0.21304f,0, 0,0,0,0),
new PointXYZRGBA(-0.10579f,0.2099f,0, 0,0,0,0),
new PointXYZRGBA(-0.13642f,0.21411f,0, 0,0,0,0),
new PointXYZRGBA(-0.22562f,0.19323f,0, 0,0,0,0),
new PointXYZRGBA(-0.24439f,0.19799f,0, 0,0,0,0),
new PointXYZRGBA(-0.22591f,0.16041f,0, 0,0,0,0),
new PointXYZRGBA(-0.23466f,0.16082f,0, 0,0,0,0),
new PointXYZRGBA(-0.3077f,0.20998f,0, 0,0,0,0),
new PointXYZRGBA(-0.3413f,0.21239f,0, 0,0,0,0),
new PointXYZRGBA(-0.40551f,0.32178f,0, 0,0,0,0),
new PointXYZRGBA(-0.50568f,0.3218f,0, 0,0,0,0),
new PointXYZRGBA(-0.41732f,0.30844f,0, 0,0,0,0),
new PointXYZRGBA(-0.44237f,0.28859f,0, 0,0,0,0),
new PointXYZRGBA(-0.41591f,0.22004f,0, 0,0,0,0),
new PointXYZRGBA(-0.44803f,0.24236f,0, 0,0,0,0),
new PointXYZRGBA(-0.50623f,0.29315f,0, 0,0,0,0),
new PointXYZRGBA(-0.50916f,0.24296f,0, 0,0,0,0),
new PointXYZRGBA(-0.57019f,0.22334f,0, 0,0,0,0),
new PointXYZRGBA(-0.59611f,0.32199f,0, 0,0,0,0),
new PointXYZRGBA(-0.65104f,0.32199f,0, 0,0,0,0),
new PointXYZRGBA(-0.72566f,0.32129f,0, 0,0,0,0),
new PointXYZRGBA(-0.75538f,0.32301f,0, 0,0,0,0),
new PointXYZRGBA(-0.59653f,0.29315f,0, 0,0,0,0),
new PointXYZRGBA(-0.65063f,0.29315f,0, 0,0,0,0),
new PointXYZRGBA(-0.59478f,0.24245f,0, 0,0,0,0),
new PointXYZRGBA(-0.65063f,0.24399f,0, 0,0,0,0),
new PointXYZRGBA(-0.70618f,0.29525f,0, 0,0,0,0),
new PointXYZRGBA(-0.76203f,0.31284f,0, 0,0,0,0),
new PointXYZRGBA(-0.70302f,0.24183f,0, 0,0,0,0),
new PointXYZRGBA(-0.77062f,0.22133f,0, 0,0,0,0),
new PointXYZRGBA(-0.41545f,0.21099f,0, 0,0,0,0),
new PointXYZRGBA(-0.45004f,0.19812f,0, 0,0,0,0),
new PointXYZRGBA(-0.4475f,0.1673f,0, 0,0,0,0),
new PointXYZRGBA(-0.52031f,0.21236f,0, 0,0,0,0),
new PointXYZRGBA(-0.55182f,0.21045f,0, 0,0,0,0),
new PointXYZRGBA(-0.5965f,0.21131f,0, 0,0,0,0),
new PointXYZRGBA(-0.65064f,0.2113f,0, 0,0,0,0),
new PointXYZRGBA(-0.72216f,0.21286f,0, 0,0,0,0),
new PointXYZRGBA(-0.7556f,0.20987f,0, 0,0,0,0),
new PointXYZRGBA(-0.78343f,0.31973f,0, 0,0,0,0),
new PointXYZRGBA(-0.87572f,0.32111f,0, 0,0,0,0),
new PointXYZRGBA(-0.90519f,0.32263f,0, 0,0,0,0),
new PointXYZRGBA(-0.95526f,0.34127f,0, 0,0,0,0),
new PointXYZRGBA(-0.79774f,0.29271f,0, 0,0,0,0),
new PointXYZRGBA(-0.85618f,0.29497f,0, 0,0,0,0),
new PointXYZRGBA(-0.79975f,0.24326f,0, 0,0,0,0),
new PointXYZRGBA(-0.8521f,0.24246f,0, 0,0,0,0),
new PointXYZRGBA(-0.91157f,0.31224f,0, 0,0,0,0),
new PointXYZRGBA(-0.95031f,0.29572f,0, 0,0,0,0),
new PointXYZRGBA(-0.92223f,0.2213f,0, 0,0,0,0),
new PointXYZRGBA(-0.94979f,0.24354f,0, 0,0,0,0),
new PointXYZRGBA(-0.78641f,0.21505f,0, 0,0,0,0),
new PointXYZRGBA(-0.87094f,0.21237f,0, 0,0,0,0),
new PointXYZRGBA(-0.90637f,0.20934f,0, 0,0,0,0),
new PointXYZRGBA(-0.93777f,0.21481f,0, 0,0,0,0),
new PointXYZRGBA(0.22244f,-0.0296f,0, 0,0,0,0),
new PointXYZRGBA(0.2704f,-0.078167f,0, 0,0,0,0),
new PointXYZRGBA(0.24416f,-0.056883f,0, 0,0,0,0),
new PointXYZRGBA(0.27311f,-0.10653f,0, 0,0,0,0),
new PointXYZRGBA(0.26172f,-0.10653f,0, 0,0,0,0),
new PointXYZRGBA(0.2704f,-0.1349f,0, 0,0,0,0),
new PointXYZRGBA(0.24428f,-0.15599f,0, 0,0,0,0),
new PointXYZRGBA(0.19017f,-0.025297f,0, 0,0,0,0),
new PointXYZRGBA(0.14248f,-0.02428f,0, 0,0,0,0),
new PointXYZRGBA(0.19815f,-0.037432f,0, 0,0,0,0),
new PointXYZRGBA(0.14248f,-0.03515f,0, 0,0,0,0),
new PointXYZRGBA(0.093313f,-0.02428f,0, 0,0,0,0),
new PointXYZRGBA(0.044144f,-0.02428f,0, 0,0,0,0),
new PointXYZRGBA(0.093313f,-0.03515f,0, 0,0,0,0),
new PointXYZRGBA(0.044144f,-0.03515f,0, 0,0,0,0),
new PointXYZRGBA(0.21156f,-0.17357f,0, 0,0,0,0),
new PointXYZRGBA(0.029114f,-0.12594f,0, 0,0,0,0),
new PointXYZRGBA(0.036583f,-0.15619f,0, 0,0,0,0),
new PointXYZRGBA(0.22446f,-0.20514f,0, 0,0,0,0),
new PointXYZRGBA(0.2208f,-0.2369f,0, 0,0,0,0),
new PointXYZRGBA(0.2129f,-0.208f,0, 0,0,0,0),
new PointXYZRGBA(0.19316f,-0.25672f,0, 0,0,0,0),
new PointXYZRGBA(0.14497f,-0.27484f,0, 0,0,0,0),
new PointXYZRGBA(0.030167f,-0.18748f,0, 0,0,0,0),
new PointXYZRGBA(0.1021f,-0.27453f,0, 0,0,0,0),
new PointXYZRGBA(0.1689f,-0.2831f,0, 0,0,0,0),
new PointXYZRGBA(0.13875f,-0.28647f,0, 0,0,0,0),
new PointXYZRGBA(0.086993f,-0.29568f,0, 0,0,0,0),
new PointXYZRGBA(0.044924f,-0.3154f,0, 0,0,0,0),
new PointXYZRGBA(-0.0066125f,-0.02428f,0, 0,0,0,0),
new PointXYZRGBA(-0.057362f,-0.02428f,0, 0,0,0,0),
new PointXYZRGBA(-0.0066125f,-0.03515f,0, 0,0,0,0),
new PointXYZRGBA(-0.057362f,-0.03515f,0, 0,0,0,0),
new PointXYZRGBA(-0.10653f,-0.02428f,0, 0,0,0,0),
new PointXYZRGBA(-0.15266f,-0.025282f,0, 0,0,0,0),
new PointXYZRGBA(-0.10653f,-0.03515f,0, 0,0,0,0),
new PointXYZRGBA(-0.16036f,-0.037257f,0, 0,0,0,0),
new PointXYZRGBA(0.0083286f,-0.1259f,0, 0,0,0,0),
new PointXYZRGBA(0.0007442f,-0.15603f,0, 0,0,0,0),
new PointXYZRGBA(-0.1741f,-0.17381f,0, 0,0,0,0),
new PointXYZRGBA(-0.18502f,-0.02954f,0, 0,0,0,0),
new PointXYZRGBA(-0.20707f,-0.056403f,0, 0,0,0,0),
new PointXYZRGBA(-0.23348f,-0.07764f,0, 0,0,0,0),
new PointXYZRGBA(-0.2244f,-0.10653f,0, 0,0,0,0),
new PointXYZRGBA(-0.23604f,-0.10652f,0, 0,0,0,0),
new PointXYZRGBA(-0.20734f,-0.15641f,0, 0,0,0,0),
new PointXYZRGBA(-0.23348f,-0.13542f,0, 0,0,0,0),
new PointXYZRGBA(0.0061083f,-0.18729f,0, 0,0,0,0),
new PointXYZRGBA(-0.066235f,-0.27472f,0, 0,0,0,0),
new PointXYZRGBA(-0.17577f,-0.20789f,0, 0,0,0,0),
new PointXYZRGBA(-0.10861f,-0.27494f,0, 0,0,0,0),
new PointXYZRGBA(-0.15584f,-0.25716f,0, 0,0,0,0),
new PointXYZRGBA(-0.0075775f,-0.31546f,0, 0,0,0,0),
new PointXYZRGBA(-0.050817f,-0.29595f,0, 0,0,0,0),
new PointXYZRGBA(-0.10306f,-0.28653f,0, 0,0,0,0),
new PointXYZRGBA(-0.1319f,-0.2831f,0, 0,0,0,0),
new PointXYZRGBA(-0.18716f,-0.20571f,0, 0,0,0,0),
new PointXYZRGBA(-0.18369f,-0.23729f,0, 0,0,0,0)
};

var result = pw.WriteBinData(plist, "write_test.pcd");

Assert.AreEqual(true, result);
}


}
}
8 changes: 6 additions & 2 deletions PointCloud.Test/PointCloud.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.6.2.12296, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<Reference Include="nunit.framework, Version=3.2.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
<HintPath>NUnit-net-4.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
Expand All @@ -44,6 +44,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="PCDWriterTest.cs" />
<Compile Include="PCDReaderTest.cs" />
<Compile Include="PointTypeTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
Expand All @@ -53,6 +54,9 @@
<None Include="test.pcd">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="testbin.pcd">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\PointCloud\PointCloud.csproj">
Expand Down
16 changes: 16 additions & 0 deletions PointCloud.Test/PointTypeTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,21 @@ public void PointConvertToTest()

Assert.AreEqual("1 2 3", TypeDescriptor.GetConverter(point).ConvertTo(point, typeof(string)));
}

[Test]
public void PointRGBAConvertFromTest()
{

var bytes = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x5a, 0x24, 0xd7, 0x44, 0xbc, 0x77, 0xfb, 0x43, 0x00, 0x00, 0x80, 0x3f };
PointXYZRGBA point = (PointXYZRGBA)TypeDescriptor.GetConverter(typeof(PointXYZRGBA)).ConvertFrom(bytes);

Assert.AreEqual(0, point.X, 0.000001);
Assert.AreEqual(1721.136, point.Y, 0.000001);
Assert.AreEqual(502.9354, point.Z, 0.000001);
Assert.AreEqual(0x00, point.R);
Assert.AreEqual(0x00, point.G);
Assert.AreEqual(0x80, point.B);
Assert.AreEqual(0x3f, point.A);
}
}
}
Binary file added PointCloud.Test/testbin.pcd
Binary file not shown.
Loading