Изменение условия в алгоритме

This commit is contained in:
Степанов Дмитрий 2024-03-01 07:59:26 +03:00
parent 4af7868430
commit 93f22c5b5b
5 changed files with 8 additions and 46 deletions

View File

@ -77,13 +77,7 @@ public class DetectedOperationDto: IId
/// </summary>
[Required]
public WellOperationCategoryDto OperationCategory { get; set; } = null!;
/// <summary>
/// Положение долота на момент окончания операции
/// </summary>
[Required]
public float BitDepth { get; set; }
/// <summary>
/// Ключевой параметр операции
/// </summary>

View File

@ -114,7 +114,6 @@ namespace AsbCloudInfrastructure.Services.DetectOperations.Detectors
DepthStart = (double)pBegin.WellDepth,
DepthEnd = (double)pEnd.WellDepth,
ExtraData = ExtraData,
BitDepth = pEnd.BitDepth,
Value = CalcValue(telemetry, begin, end),
EnabledSubsystems = DetectEnabledSubsystems(telemetry, begin, end, ExtraData)
};

View File

@ -15,6 +15,9 @@ public class DetectorSlipsTime : DetectorAbstract
var currentPoint = telemetry[position];
var delta = Math.Abs(currentPoint.WellDepth - currentPoint.BitDepth);
if (currentPoint.BitDepth < 150)
return false;
if (delta < 0.1d)
return false;
@ -62,14 +65,6 @@ public class DetectorSlipsTime : DetectorAbstract
return (WellOperationCategory.IdSlipsTime, new Dictionary<string, object>());
}
protected override bool IsValidOperationDetectorResult(OperationDetectorResult operationDetectorResult)
{
if (Math.Abs((operationDetectorResult.Operation.DateStart - operationDetectorResult.Operation.DateEnd).TotalMinutes) > 30)
return false;
if (operationDetectorResult.Operation.BitDepth <= 150d)
return false;
return true;
}
protected override bool IsValidOperationDetectorResult(OperationDetectorResult operationDetectorResult) =>
Math.Abs((operationDetectorResult.Operation.DateStart - operationDetectorResult.Operation.DateEnd).TotalMinutes) < 30;
}

View File

@ -16,14 +16,12 @@
( движение блока без изменения глубины долота) И
( глубина долота > 150 м);
Признак окончания операции =
Признак окончания операции =
( давление > 20атм) ИЛИ
( время продолжительности > 30 мин) ИЛИ
( глубина долота < 150 м) ИЛИ
( время продолжительности > 30 мин) ИЛИ
( изменение глубины долота) И
( осевая нагрузка < веса на крюке);
## Ключевой параметр
Продолжительность операции.

View File

@ -60,30 +60,6 @@ public class DetectorSlipsTimeTests
Assert.Equal(IdSlipsTime, result.Operation.IdCategory);
}
[Fact]
public void ValidateOperation_with_bit_depth_before_150_meters_is_invalid()
{
//arrange
var point0 = telemetryBuilder
.WithBitDepth(149)
.Build();
var point1 = telemetryBuilder
.WithBitDepth(149)
.WithBlockPosition(21)
.Build();
var telemetries = new[] { point0, point1 };
//act
var isDetectOperation = sut.TryDetect(0, telemetries, 0, telemetries.Length - 1, null, out var result);
//assert
Assert.False(isDetectOperation);
Assert.NotNull(result);
Assert.Equal(IdSlipsTime, result.Operation.IdCategory);
}
[Fact]
public void ValidateOperation_with_duration_more_30_minutes_is_invalid()
{