Support logical arrays
This commit is contained in:
parent
67905605d6
commit
99558d96c4
@ -204,6 +204,24 @@ namespace MatFileHandler.Tests
|
|||||||
Assert.That(structure["y", 1, 2].IsEmpty, Is.True);
|
Assert.That(structure["y", 1, 2].IsEmpty, Is.True);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Test reading a logical array.
|
||||||
|
/// </summary>
|
||||||
|
[Test]
|
||||||
|
public void TestLogical()
|
||||||
|
{
|
||||||
|
var matFile = ReadHdfTestFile("logical");
|
||||||
|
var array = matFile["logical_"].Value;
|
||||||
|
var logicalArray = array as IArrayOf<bool>;
|
||||||
|
Assert.That(logicalArray, Is.Not.Null);
|
||||||
|
Assert.That(logicalArray[0, 0], Is.True);
|
||||||
|
Assert.That(logicalArray[0, 1], Is.True);
|
||||||
|
Assert.That(logicalArray[0, 2], Is.False);
|
||||||
|
Assert.That(logicalArray[1, 0], Is.False);
|
||||||
|
Assert.That(logicalArray[1, 1], Is.True);
|
||||||
|
Assert.That(logicalArray[1, 2], Is.True);
|
||||||
|
}
|
||||||
|
|
||||||
private static void CheckComplexLimits<T>(IArrayOf<ComplexOf<T>> array, T[] limits)
|
private static void CheckComplexLimits<T>(IArrayOf<ComplexOf<T>> array, T[] limits)
|
||||||
where T : struct
|
where T : struct
|
||||||
{
|
{
|
||||||
|
BIN
MatFileHandler.Tests/test-data/hdf/logical.mat
Normal file
BIN
MatFileHandler.Tests/test-data/hdf/logical.mat
Normal file
Binary file not shown.
@ -24,6 +24,7 @@ namespace MatFileHandler
|
|||||||
MSingle,
|
MSingle,
|
||||||
MDouble,
|
MDouble,
|
||||||
MCell,
|
MCell,
|
||||||
|
MLogical,
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class HdfArray : IArray
|
internal class HdfArray : IArray
|
||||||
@ -440,6 +441,8 @@ namespace MatFileHandler
|
|||||||
{
|
{
|
||||||
case "canonical empty":
|
case "canonical empty":
|
||||||
return HdfMatlabClass.MEmpty;
|
return HdfMatlabClass.MEmpty;
|
||||||
|
case "logical":
|
||||||
|
return HdfMatlabClass.MLogical;
|
||||||
case "char":
|
case "char":
|
||||||
return HdfMatlabClass.MChar;
|
return HdfMatlabClass.MChar;
|
||||||
case "int8":
|
case "int8":
|
||||||
@ -598,6 +601,8 @@ namespace MatFileHandler
|
|||||||
{
|
{
|
||||||
case HdfMatlabClass.MEmpty:
|
case HdfMatlabClass.MEmpty:
|
||||||
return HdfArray.Empty();
|
return HdfArray.Empty();
|
||||||
|
case HdfMatlabClass.MLogical:
|
||||||
|
return ReadNumericalArray<bool>(datasetId, dims, arrayType);
|
||||||
case HdfMatlabClass.MChar:
|
case HdfMatlabClass.MChar:
|
||||||
return ReadCharArray(datasetId, dims);
|
return ReadCharArray(datasetId, dims);
|
||||||
case HdfMatlabClass.MInt8:
|
case HdfMatlabClass.MInt8:
|
||||||
@ -651,6 +656,7 @@ namespace MatFileHandler
|
|||||||
{
|
{
|
||||||
case HdfMatlabClass.MInt8:
|
case HdfMatlabClass.MInt8:
|
||||||
case HdfMatlabClass.MUInt8:
|
case HdfMatlabClass.MUInt8:
|
||||||
|
case HdfMatlabClass.MLogical:
|
||||||
return 1;
|
return 1;
|
||||||
case HdfMatlabClass.MInt16:
|
case HdfMatlabClass.MInt16:
|
||||||
case HdfMatlabClass.MUInt16:
|
case HdfMatlabClass.MUInt16:
|
||||||
@ -675,6 +681,7 @@ namespace MatFileHandler
|
|||||||
case HdfMatlabClass.MInt8:
|
case HdfMatlabClass.MInt8:
|
||||||
return H5T.NATIVE_INT8;
|
return H5T.NATIVE_INT8;
|
||||||
case HdfMatlabClass.MUInt8:
|
case HdfMatlabClass.MUInt8:
|
||||||
|
case HdfMatlabClass.MLogical:
|
||||||
return H5T.NATIVE_UINT8;
|
return H5T.NATIVE_UINT8;
|
||||||
case HdfMatlabClass.MInt16:
|
case HdfMatlabClass.MInt16:
|
||||||
return H5T.NATIVE_INT16;
|
return H5T.NATIVE_INT16;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user