Labels: eight rows (model, build, fan blades, contacts, bracket, print, serial, seal); serial text rules by brand and tier
This commit is contained in:
1 parent
202bdbbfbc
commit
9d19df407a
3 files changed
+113
-63
No files matched your search
@@ -141,17 +141,17 @@ internal static class Program
|
||||
var fake = CardLook.Generate(rng, 20 + (i % 80), true);
|
||||
if (real.HasFakeSign || oldReal.HasFakeSign) realSign++;
|
||||
if (!fake.HasFakeSign) fakeNoSign++;
|
||||
fakeSigns += (fake.Bracket == 2 ? 1 : 0) + (fake.Print != 0 ? 1 : 0) + (fake.Sticker == 1 ? 1 : 0);
|
||||
fakeSigns += (fake.Print != 0 ? 1 : 0) + (fake.Serial != 0 ? 1 : 0);
|
||||
if (real.Fan > 0 || real.Fingers > 0) newWorn++;
|
||||
if (oldReal.Fan > 0 || oldReal.Fingers > 0) oldWorn++;
|
||||
seen.Add($"{fake.Fan}{fake.Fingers}{fake.Bracket}{fake.Print}{fake.Sticker}");
|
||||
seen.Add($"{oldReal.Fan}{oldReal.Fingers}{oldReal.Bracket}{oldReal.Print}{oldReal.Sticker}");
|
||||
}
|
||||
Check(realSign == 0, "真卡从不出现破绽类取值(接口数不对、丝印不对、手写序列号)");
|
||||
Check(fakeNoSign == 0, "假卡至少有一处破绽");
|
||||
Check(Near(fakeSigns / (double)n, 1.65, 0.12), $"假卡平均 1.65 处破绽:{fakeSigns / (double)n:0.00}");
|
||||
Check(realSign == 0, "真卡从不出现破绽类取值(丝印不对、序列号不合规)");
|
||||
Check(fakeNoSign > n * 0.1 && fakeNoSign < n * 0.3, $"假卡里一成多的骗子没动丝印和序列号(只剩供电与风扇这一处实物破绽):{fakeNoSign / (double)n:P0}");
|
||||
Check(Near(fakeSigns / (double)n, 0.55 * 1 + 0.65 * 1, 0.1), $"假卡平均 1.2 处额外破绽(重印丝印、补贴序列号):{fakeSigns / (double)n:0.00}");
|
||||
Check(oldWorn > newWorn * 1.8, $"低健康度的真卡明显更旧:{oldWorn / (double)n:P0} 对 {newWorn / (double)n:P0}");
|
||||
Check(seen.Count >= 120, $"抽样见到 {seen.Count} 种不同组合(上限 243)");
|
||||
Check(seen.Count >= 60, $"抽样见到 {seen.Count} 种不同组合(上限 243)");
|
||||
Check(Hardware.Specs["RZX60"].Price == 220 && Hardware.Specs["RZX90"].Price == 5000 && Hardware.Specs["RZ900"].Price == 4000, "价格已抬高到约 1.8 倍");
|
||||
var u = new Unit { Model = "RZX90", FakeOf = "RZX60", Health = 80 };
|
||||
Check(CardValue.True(u) == CardValue.Of("RZX60", 80) && CardValue.Quoted(u, 80) == CardValue.Of("RZX90", 80), "真实价值按芯片型号,标称价按标称型号");
|
||||
@@ -370,11 +370,28 @@ internal static class Program
|
||||
int ex2 = 0;
|
||||
var honestUnit = new Unit { Model = "RZX70", Health = 60, Look = new CardLook { Fan = 1 } };
|
||||
Check(CardLabels.Point(honestUnit, CardLabels.DealerClaim(honestUnit, DealerKind.Honest, new Rng(1)), CardLabels.RowFan, ref ex2) == 0, "老实人说的是实话,指出去没用");
|
||||
Check(CardLabels.Lies(u, claim, 0) == (CardLabels.RowSpec | CardLabels.RowFan | CardLabels.RowFingers | CardLabels.RowPrint), "骗子隐瞒了型号、风扇、金手指、丝印");
|
||||
Check(CardLabels.Lies(u, claim, 0) == (CardLabels.RowSpec | CardLabels.RowBuild | CardLabels.RowFan | CardLabels.RowFingers | CardLabels.RowPrint), "骗子隐瞒了型号、供电与风扇、风扇叶片、金手指、丝印");
|
||||
Check(CardLabels.Lies(u, claim, ex) == 0, "指出之后不再算隐瞒");
|
||||
Check(Claim.Decode(claim.Encode()).Encode() == claim.Encode(), "说法能存取");
|
||||
});
|
||||
|
||||
Test("序列号与供电风扇:四档实物特征;序列号按牌子和档次鉴定;指出供电风扇自动改回真实型号", () =>
|
||||
{
|
||||
Check(Hardware.FanCount.SequenceEqual(new[] { 1, 2, 3, 3 }) && Hardware.PowerPins.SequenceEqual(new[] { "6", "8", "8", "8+8" }), "低端 6 针单风扇、中端 8 针双风扇、高端 8 针三风扇、旗舰双 8 针三风扇");
|
||||
Check(Hardware.Specs.Values.Where(x => !x.Asic).All(x => Hardware.Specs.Values.Count(y => !y.Asic && y.Brand == x.Brand && y.Tier == x.Tier) == 1), "每个牌子每个档次只有一个型号");
|
||||
var real = new Unit { Model = "RZ80", Health = 100, Look = new CardLook { Seed = 7 } };
|
||||
var t = CardLabels.SerialText(real);
|
||||
Check(t.StartsWith("MD2-") && CardLabels.Factories("PMD").Contains(int.Parse(t.Substring(4, 2))) && t.Length == 11, $"真卡的序列号:牌子 + 档次码 + 合法工厂码 + 四位流水:{t}");
|
||||
var forged = new Unit { Model = "RZX90", FakeOf = "RZX60", Health = 100, Look = new CardLook { Seed = 7, Serial = 1 } };
|
||||
var f = CardLabels.SerialText(forged);
|
||||
Check(f.StartsWith("PB4-") && (!CardLabels.Factories("Probidia").Contains(int.Parse(f.Substring(4, 2))) || f.Length == 10), $"补贴的序列号:档次码对,工厂码不合法或位数不对:{f}");
|
||||
var original = new Unit { Model = "RZX90", FakeOf = "RZX60", Health = 100, Look = new CardLook { Seed = 7, Serial = 2 } };
|
||||
Check(CardLabels.SerialText(original).StartsWith("PB1-"), "贴的是原芯片的序列号:档次码是真实芯片的档次");
|
||||
var claim = CardLabels.DealerClaim(original, DealerKind.Scammer, new Rng(1));
|
||||
int ex = 0;
|
||||
Check(CardLabels.Point(original, claim, CardLabels.RowBuild, ref ex) == 2 && (ex & CardLabels.RowSpec) != 0 && CardLabels.Value(original, claim, ex) == CardValue.True(original), "指出供电与风扇:型号自动改回真实型号,价格回到真实价值");
|
||||
});
|
||||
|
||||
Test("外观随损耗重算:越旧外观越差;种子固定;算力受风扇与金手指影响", () =>
|
||||
{
|
||||
var rng = new Rng(5);
|
||||
|
||||
Reference in new issue
Block a user