Changeset 919
- Timestamp:
- 10/09/08 16:44:19 (3 months ago)
- Location:
- trunk/csharp
- Files:
-
- 8 modified
-
HelloWorldLAS/Program.cs (modified) (1 diff)
-
NUnitTest/LASFilesClass.cs (modified) (2 diffs)
-
NUnitTest/LASGuidTest.cs (modified) (5 diffs)
-
NUnitTest/LASHeaderTest.cs (modified) (13 diffs)
-
NUnitTest/LASPointTest.cs (modified) (16 diffs)
-
NUnitTest/LASReaderTest.cs (modified) (7 diffs)
-
NUnitTest/LASVariableLengthRecordTest.cs (modified) (4 diffs)
-
NUnitTest/LASWriterTest.cs (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/csharp/HelloWorldLAS/Program.cs
r905 r919 1 using System; 1 /****************************************************************************** 2 * $Id$ 3 * 4 * Project: libLAS - http://liblas.org - A BSD library for LAS format data. 5 * Purpose: Sample program demonstrating use of libLAS for .NET/Mono 6 * Author: Martin Vales, martin_gnu@mundo-r.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2008, Martin Vales 10 * 11 * All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * * Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * * Redistributions in binary form must reproduce the above copyright 20 * notice, this list of conditions and the following disclaimer in 21 * the documentation and/or other materials provided 22 * with the distribution. 23 * * Neither the name of the Martin Isenburg or Iowa Department 24 * of Natural Resources nor the names of its contributors may be 25 * used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 35 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 36 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 37 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 38 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 39 * OF SUCH DAMAGE. 40 ****************************************************************************/ 41 42 using System; 2 43 using System.Text; 3 44 using LibLAS; -
trunk/csharp/NUnitTest/LASFilesClass.cs
r900 r919 1 /****************************************************************************** 2 * $Id$ 3 * 4 * Project: libLAS - http://liblas.org - A BSD library for LAS format data. 5 * Purpose: Test cases of LASFile class, .NET/Mono bindings 6 * Author: Martin Vales, martin_gnu@mundo-r.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2008, Martin Vales 10 * 11 * All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * * Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * * Redistributions in binary form must reproduce the above copyright 20 * notice, this list of conditions and the following disclaimer in 21 * the documentation and/or other materials provided 22 * with the distribution. 23 * * Neither the name of the Martin Isenburg or Iowa Department 24 * of Natural Resources nor the names of its contributors may be 25 * used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 35 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 36 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 37 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 38 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 39 * OF SUCH DAMAGE. 40 ****************************************************************************/ 41 1 42 using System; 2 43 using System.Collections.Generic; … … 16 57 //static public string TO_core_last_zoom = "TO_core_last_zoom"; 17 58 } 18 19 59 } 20 60 } -
trunk/csharp/NUnitTest/LASGuidTest.cs
r900 r919 1 /****************************************************************************** 2 * $Id$ 3 * 4 * Project: libLAS - http://liblas.org - A BSD library for LAS format data. 5 * Purpose: Test cases of LASGuid class, .NET/Mono bindings 6 * Author: Martin Vales, martin_gnu@mundo-r.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2008, Martin Vales 10 * 11 * All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * * Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * * Redistributions in binary form must reproduce the above copyright 20 * notice, this list of conditions and the following disclaimer in 21 * the documentation and/or other materials provided 22 * with the distribution. 23 * * Neither the name of the Martin Isenburg or Iowa Department 24 * of Natural Resources nor the names of its contributors may be 25 * used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 35 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 36 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 37 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 38 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 39 * OF SUCH DAMAGE. 40 ****************************************************************************/ 41 1 42 using System; 2 43 using System.Collections.Generic; … … 4 45 using NUnit.Framework; 5 46 using LibLAS; 6 7 47 8 48 namespace NUnitTest … … 16 56 protected void SetUp() 17 57 { 18 19 58 } 20 59 21 22 60 [Test] 23 61 public void ConstructionfromString() … … 27 65 LASGuid guid2 = new LASGuid("3F2504E0-4F89-11D3-9A0C-0305E82C3301"); 28 66 29 30 67 Assert.AreNotSame(guid1, guid2); 31 32 33 68 Assert.AreEqual(guid1.ToString(), "00000000-0000-0000-0000-000000000000"); 34 69 Assert.AreEqual(guid2.ToString().ToUpper(), "3F2504E0-4F89-11D3-9A0C-0305E82C3301"); 35 70 Assert.IsNotNull(guid1); 36 71 Assert.IsNotNull(guid2); 37 38 39 72 } 40 73 … … 42 75 public void Equals() 43 76 { 44 45 77 LASGuid guid1 = new LASGuid("3F2504E0-4F89-11D3-9A0C-0305E82C3301"); 46 78 LASGuid guid2 = new LASGuid("3F2504E0-4F89-11D3-9A0C-0305E82C3301"); 47 79 48 49 80 Assert.IsTrue(guid1.Equals(guid2)); 50 51 52 53 81 } 54 55 56 82 } 57 83 } 58 -
trunk/csharp/NUnitTest/LASHeaderTest.cs
r900 r919 1 /****************************************************************************** 2 * $Id$ 3 * 4 * Project: libLAS - http://liblas.org - A BSD library for LAS format data. 5 * Purpose: Test cases of LASHeader class, .NET/Mono bindings 6 * Author: Martin Vales, martin_gnu@mundo-r.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2008, Martin Vales 10 * 11 * All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * * Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * * Redistributions in binary form must reproduce the above copyright 20 * notice, this list of conditions and the following disclaimer in 21 * the documentation and/or other materials provided 22 * with the distribution. 23 * * Neither the name of the Martin Isenburg or Iowa Department 24 * of Natural Resources nor the names of its contributors may be 25 * used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 35 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 36 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 37 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 38 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 39 * OF SUCH DAMAGE. 40 ****************************************************************************/ 41 1 42 using System; 2 43 using System.Collections.Generic; … … 5 46 using LibLAS; 6 47 7 8 48 namespace NUnitTest 9 49 { … … 11 51 public class LASHeaderTest 12 52 { 13 // LASPoint.14 15 53 [SetUp] 16 54 protected void SetUp() 17 55 { 18 19 } 20 21 [Test] 22 56 } 57 58 [Test] 23 59 public void CopyConstructor() 24 60 { 25 61 LASHeader header = new LASHeader(); 26 // string sig = "LASF and garbage"; 27 28 62 // string sig = "LASF and garbage"; 29 63 // header.FileSignature = sig; 30 64 // Assert.AreEqual(header.FileSignature.Length,4); … … 49 83 // string sig = "LASF and garbage"; 50 84 51 52 85 Assert.AreEqual(header.FileSignature.Length, 4); 53 54 86 Assert.AreEqual(header.FileSignature, "LASF"); 55 87 56 88 // I can not set FileSignature from c# API because i am a bad guy. 57 89 //header.FileSignature = "LASF"; 58 59 90 } 60 91 … … 62 93 public void FileSourceId() 63 94 { 64 65 95 LASHeader h1 = new LASHeader(); 66 96 … … 68 98 UInt16 id2 = 65535; 69 99 UInt16 overflowed = 0; 70 71 100 72 101 h1.FileSourceId = id1; … … 75 104 Assert.AreEqual(h1.FileSourceId, id2); 76 105 77 78 106 // Unsigned overflow 79 107 // Likely compiler warning: truncation from int to liblas::uint16_t … … 82 110 } 83 111 84 85 112 [Test] 86 113 public void Reserved() 87 114 { 88 89 LASHeader h = new LASHeader(); 90 115 LASHeader h = new LASHeader(); 91 116 92 117 Assert.AreEqual(h.Reserved, 0); 93 94 95 118 } 96 119 … … 98 121 public void ProjectId() 99 122 { 100 101 123 LASHeader h = new LASHeader(); 102 124 … … 113 135 //ensure_not(h.GetProjectId().is_null()); 114 136 //ensure_equals(h.GetProjectId(), id); 115 116 117 } 118 137 } 119 138 120 139 [Test] 121 140 public void MinorMajorVersion() 122 141 { 123 124 142 LASHeader h = new LASHeader(); 125 143 h.VersionMinor = 0; … … 142 160 { 143 161 Assert.AreEqual(e.Message, "Exception in Set Header VersionMajor."); 144 145 162 } 146 163 … … 154 171 { 155 172 Assert.AreEqual(e.Message, "Exception in Set Header VersionMinor."); 156 157 } 158 159 160 173 } 161 174 } 162 175 … … 186 199 { 187 200 LASHeader h = new LASHeader(); 188 // Assert.AreEqual(h.GetPointRecordsByReturnCount(5),5); 189 190 191 h.SetPointRecordsByReturnCount(0, 100); 192 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 193 Assert.AreEqual(h.GetPointRecordsByReturnCount(0), 100); 194 195 h.SetPointRecordsByReturnCount(1, 101); 196 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 197 Assert.AreEqual(h.GetPointRecordsByReturnCount(1), 101); 198 199 h.SetPointRecordsByReturnCount(2, 102); 200 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 201 Assert.AreEqual(h.GetPointRecordsByReturnCount(2), 102); 202 203 h.SetPointRecordsByReturnCount(3, 103); 204 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 205 Assert.AreEqual(h.GetPointRecordsByReturnCount(3), 103); 206 207 h.SetPointRecordsByReturnCount(4, 104); 208 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 209 Assert.AreEqual(h.GetPointRecordsByReturnCount(4), 104); 210 211 try 212 { 213 // 5 is out of range 214 h.SetPointRecordsByReturnCount(5, 500); 215 //donŽt get the next line... 201 // Assert.AreEqual(h.GetPointRecordsByReturnCount(5),5); 202 203 h.SetPointRecordsByReturnCount(0, 100); 204 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 205 Assert.AreEqual(h.GetPointRecordsByReturnCount(0), 100); 206 207 h.SetPointRecordsByReturnCount(1, 101); 208 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 209 Assert.AreEqual(h.GetPointRecordsByReturnCount(1), 101); 210 211 h.SetPointRecordsByReturnCount(2, 102); 212 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 213 Assert.AreEqual(h.GetPointRecordsByReturnCount(2), 102); 214 215 h.SetPointRecordsByReturnCount(3, 103); 216 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 217 Assert.AreEqual(h.GetPointRecordsByReturnCount(3), 103); 218 219 h.SetPointRecordsByReturnCount(4, 104); 220 //ensure_equals(h.GetPointRecordsByReturnCount().size(), 5); 221 Assert.AreEqual(h.GetPointRecordsByReturnCount(4), 104); 222 223 try 224 { 225 // 5 is out of range 226 h.SetPointRecordsByReturnCount(5, 500); 227 //donŽt get the next line... 216 228 Assert.AreEqual(2, 5); 217 } 218 catch (LASException e) 219 { 220 Assert.AreEqual(e.Message, "Exception in Set Header SetPointRecordsByReturnCount."); 221 } 222 223 224 225 } 226 229 } 230 catch (LASException e) 231 { 232 Assert.AreEqual(e.Message, "Exception in Set Header SetPointRecordsByReturnCount."); 233 } 234 } 227 235 } 228 236 } 229 -
trunk/csharp/NUnitTest/LASPointTest.cs
r900 r919 1 /****************************************************************************** 2 * $Id$ 3 * 4 * Project: libLAS - http://liblas.org - A BSD library for LAS format data. 5 * Purpose: Test cases of LASPoint class, .NET/Mono bindings 6 * Author: Martin Vales, martin_gnu@mundo-r.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2008, Martin Vales 10 * 11 * All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * * Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * * Redistributions in binary form must reproduce the above copyright 20 * notice, this list of conditions and the following disclaimer in 21 * the documentation and/or other materials provided 22 * with the distribution. 23 * * Neither the name of the Martin Isenburg or Iowa Department 24 * of Natural Resources nor the names of its contributors may be 25 * used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 35 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 36 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 37 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 38 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 39 * OF SUCH DAMAGE. 40 ****************************************************************************/ 41 1 42 using System; 2 43 using System.Collections.Generic; … … 5 46 using LibLAS; 6 47 7 8 48 namespace NUnitTest 9 49 { … … 11 51 public class LASPointTest 12 52 { 13 14 53 LASPoint point = new LASPoint(); 15 54 … … 17 56 protected void SetUp() 18 57 { 19 20 21 58 } 22 59 … … 24 61 public void SetPointCoordinates() 25 62 { 26 27 63 LASPoint pointB = new LASPoint(); 28 64 pointB.X = 23.0; … … 48 84 public void PointValid() 49 85 { 50 51 86 LASPoint pointB = new LASPoint(); 52 87 pointB.X = 23.0; … … 54 89 Assert.IsTrue(point.IsValid()); 55 90 Assert.IsTrue(pointB.IsValid()); 56 57 } 91 } 92 58 93 [Test] 59 94 public void ReturnNumber() … … 80 115 (int)LASPoint.DataMemberFlag.eReturnNumber); 81 116 } 82 83 117 } 84 118 … … 107 141 (int)LASPoint.DataMemberFlag.eNumberOfReturns); 108 142 } 109 110 } 111 143 } 112 144 113 145 [Test] … … 123 155 //Assert.AreEqual(point.ScanDirection, num2); 124 156 125 126 157 //try 127 158 //{ … … 135 166 // (int)LASPoint.DataMemberFlag.eScanDirection); 136 167 //} 137 138 168 } 139 169 … … 163 193 (int)LASPoint.DataMemberFlag.eFlightLineEdge); 164 194 } 165 166 195 } 167 196 … … 178 207 string expected = "10111011"; 179 208 byte bits = pointS.ScanFlags; 180 Assert.AreEqual(Convert.ToString(pointS.ScanFlags, 2), (expected));181 209 Assert.AreEqual(Convert.ToString(pointS.ScanFlags, 2), (expected)); 210 182 211 LASPoint pointN; 183 212 pointN = pointS.Copy(); 184 213 185 214 Assert.AreEqual(pointN.ScanFlags, pointS.ScanFlags); 186 187 188 } 189 215 } 190 216 191 217 [Test] … … 214 240 // (int)LASPoint.DataMemberFlag.eClassification); 215 241 //} 216 217 242 } 218 243 … … 242 267 (int)LASPoint.DataMemberFlag.eScanAngleRank); 243 268 } 244 245 } 246 269 } 247 270 248 271 [Test] … … 254 277 point.UserData = num1; 255 278 Assert.AreEqual(point.UserData, num1); 256 257 258 } 259 279 } 260 280 } 261 281 } 262 -
trunk/csharp/NUnitTest/LASReaderTest.cs
r900 r919 1 /****************************************************************************** 2 * $Id$ 3 * 4 * Project: libLAS - http://liblas.org - A BSD library for LAS format data. 5 * Purpose: Test cases of LASReader class, .NET/Mono bindings 6 * Author: Martin Vales, martin_gnu@mundo-r.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2008, Martin Vales 10 * 11 * All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * * Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * * Redistributions in binary form must reproduce the above copyright 20 * notice, this list of conditions and the following disclaimer in 21 * the documentation and/or other materials provided 22 * with the distribution. 23 * * Neither the name of the Martin Isenburg or Iowa Department 24 * of Natural Resources nor the names of its contributors may be 25 * used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 35 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 36 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 37 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 38 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 39 * OF SUCH DAMAGE. 40 **********
